昔の、SDK4.2のころの話。
=====
まずは、シミュレータ上で動作するサンプルアプリについて記載する。
Xcode起動
開発環境である、Xcodeを起動する。
- 「/Developer/Application」直下にある「Xcode.app」を起動
プロジェクト新規作成
メニューから新規 → プロジェクト作成を選択
View-based ApplicationでHelloWorldプロジェクトを作成
各ファイル
View-based Applicationのプロジェクトにおいて プロジェクト名を”Example02”とした場合の説明になります。
- Main.m
NSAutoreleasePoolの初期化と開放処理以外は、UIApplicationMain関数を実行しています。
このUIApplicationMain関数では、XIBリソースのロードと初期化を行い、完了後にInfo.plistファイルに記述しているメインXIBのApp Delegateのクラス(今回はExample02AppDelegateクラス)に対して、applicationDidFinishLaunching:(UIApplication)application
をコールします。 - Example02AppDelegate.m
applicationDidFinishLaunching:(UIApplication)application
では、windowオブジェクトにviewControllerオブジェクトのviewプロパティをsubViewに追加しています。
これによってExample02ViewControllerが画面に表示されるようになります。
Example02AppDelegate.mクラスでは、windowオブジェクトやviewControllerオブジェクトの生成・初期化は一切行っていません。
これらのオブジェクトはXIBロード時に自動でXIBの設定どおりにすべてバックグラウンドでやってくれています。 - Example02ViewController.m
このソースファイルは、ほとんどがコメントアウトされています。必要な場合はコメントアウトを外して、自分で実装していきます。
コード修正
以下のファイルを修正。
- HelloWorldViewController.h
#import <UIKit/UIKit.h>
@interface HelloWorldViewController : UIViewController {
//IBOutletはInterfaceBuilderで使用する変数だということを宣言する構文です。
//これがないとInterfaceBuilderで見つけることができません。
IBOutlet UITextField*myInput;
}
//ボタンハンドラとしてtapHello関数を宣言します。
//InterfaceBuilderでイベント設定する関数はすべてこの形式(戻り値がIBActionで引数がid型1つ)で宣言します。
-(IBAction)tapHello:(id)sender;
@end
- HelloWorldViewController.m
#import "HelloWorldViewController.h"
@implementation HelloWorldViewController
-(IBAction)tapHello:(id)sender{
//タップされた場合には、helloTextのtextプロパティに文字列Helloをセットします。
myInput.text = @"Hello iPad!";
}
Interface Builderを使用してUI作成
- MainWIndow.xibを起動
- Windowがひらくので、そこにLibraryからTextFieldとボタンをおく
- Ctrl押しながらさっき置いたボタンをクリック
- Touch up insideをクリックして、線をつなぐ
- テキストフィールドのほうもCtrlクリックで、さっきと同じ場所に線をつなぐ。
ビルド
メニュー → ビルド → ビルドと実行 → 自動で作成したアプリが起動します。
動作確認
ボタンをクリックすることでHello Word!という単語がテキストフィールドに表示されます。
コメント