iPhoneプログラミング超入門 - Cocoaプログラミング

iPhoneアプリ開発の第1歩となるサンプルです。UIButtonとUILabelを使います。

てくっち

AppleのデベロッパサイトにはiPhoneアプリケーションチュートリアルがあって、翻訳もされていますね。

てくっち

http://developer.apple.com/jp/iphone/library/documentation/iPhone/Conceptual/iPhone101/Articles/chapter_1_section_1.html

てくっち

がしかし、チュートリアルのわりには内容が濃すぎて、気力体力の限界を感じる人が多いのではないでしょうか。

てくっち

そこで今回は、ステップを可能な限りそぎ落とした、最小のアプリケーションを作りましょう。

てくっち

Xcodeを起動し、

てくっち

てくっち

てくっち

新規プロジェクト...からWindow-Based Applicationを選びます。

てくっち

てくっち

プロジェクト名はHelloMiniにしましょう。

てくっち

まず最初に、GUIのデザインをやりましょう。

てくっち

てくっち

MainWindow.xibをダブルクリックすると、インターフェースビルダーが起動します。

てくっち

ボタンとラベルを配置していきます。

てくっち

てくっち

ライブラリパネルでボタンを探して、Windowまでドラッグ&ドロップします。

てくっち

パネルの下の検索窓にbuttonなどと入力すると絞り込み検索してくれるのですばやく見つけられます。

てくっち

パネルにあるように、このボタンha

てくっち

通称Round Rect Button、クラス名はUIButtonです。

てくっち

そしてラベルを配置します。

てくっち

てくっち

通称Label、クラス名はUILabel。

てくっち

てくっち

こんな感じで適当に並べてください。ラベルの幅は広めにしておきましょう。

てくっち

さてここで、下のようなオブジェクトの関係図をかいてみてください。ぜひ手描きをおすすめします。

てくっち

てくっち

ボタンが押されると- push:メッセージがHelloMiniAppDelegateに送られ、

てくっち

つまり- push:メソッドが実行され、ラベルの内容を書き換えるしかけを作ろうというわけです。

てくっち

次にする作業は、この関係図にある2つの矢印をつくることです。

てくっち

それにはまず、Xcodeに戻って、HelloMiniAppDelegate.hを次のようにします。

てくっち

#import <UIKit/UIKit.h>

@interface HelloMiniAppDelegate : NSObject <UIApplicationDelegate> {
    UIWindow *window;
    UILabel *label;
}
@property (nonatomic, retain) IBOutlet UIWindow *window;
@property (nonatomic, retain) IBOutlet UILabel *label;

- (IBAction)push:(id)sender;
@end

てくっち

追加したのは3行あって、

てくっち

    UILabel *label;

てくっち

@property (nonatomic, retain) IBOutlet UILabel *label;

てくっち

- (IBAction)push:(id)sender;

てくっち

この3つです。最初の2つがラベルについての設定で、最後のやつがボタンが送るメッセージについてのものです。

てくっち

以上の変更を保存してから、インターフェースビルダーに行きましょう。

てくっち

ctrlキーを押しながら、ボタンからドラッグし、HelloMiniAppDelegateの上で離します。

てくっち

てくっち

すると次のように黒い小窓が出てくるので、

てくっち

てくっち

push:をクリックしてください。これでボタンからの接続ができました。

てくっち

次はラベルです。今度は矢印の向きが逆でした。ctrlキーを押しながらHelloMiniAppDelegateからドラッグし、ラベルの上で離してください。

てくっち

てくっち

そうするとまた黒小窓が出ますので、

てくっち

てくっち

labelをクリックしてください。これでラベルへの接続ができました。保存して、Xcodeに戻りましょう。

てくっち

HelloMiniAppDelegate.mのほうを、次のようにしてください。

てくっち

#import "HelloMiniAppDelegate.h"

@implementation HelloMiniAppDelegate

@synthesize window;
@synthesize label;

- (IBAction)push:(id)sender {
  label.text = @"Hello!";
}

- (void)applicationDidFinishLaunching:(UIApplication *)application {    
    // Override point for customization after application launch
    [window makeKeyAndVisible];
}

- (void)dealloc {
    [label release];
    [window release];
    [super dealloc];
}
@end

てくっち

追加したのは、

てくっち

@synthesize label;

てくっち

- (IBAction)push:(id)sender {
  label.text = @"Hello!";
}

てくっち

    [label release];

てくっち

の3つです。さてビルド&実行してみてください。

てくっち

てくっち

これはシミュレータですが、ボタンをクリックするとHello!と表示されます。

てくっち

うまくいきましたかー? おつかれさまでした。