Xcode4.2 Interface Builder メモ1
水曜日, 1 2月 2012
UIViewControllerをInterface Builder(以下IBとする)で作る場合。
1.ファイル確保
- まずはNew File から。iOs→CocoaTouch→UIViewController subclass
- Class にクラス名を入れる。サンプルとしてTestViewControllerとする。
- Subclass of は UIViewControllerに。
- TestViewController.m
- TestViewController.h
- TestViewController.xib
- 結果、以下の物ができあがる
2.IBの事前処理
- TestViewController.hを編集、TestViewを追加する
@interface TestView : UIView {
}
@end
- TestViewController.mも編集 IBの作業対象なので、これを欠くとちゃんと動かない
@implementation TestView
- (void) dealloc {
// ここに追加されたUIの解放処理が自動追加される。
[super dealloc] ;
}
@end
3.IBでの処理
- TestViewController.xibにコンポーネントを置く。ここではUIImageViewを置いたことにする
- 右ペイン→Show the Identity inspector(アイコン)→Cutom Class→Class をTestView に
- これをやらないと以降の処理が上手く動かないかも
- タキシードマークのアイコンを押してIBとTestViewController.hを並べて表示する
- 配置したUIImageViewの上でcontrolキーを押しつつドラッグをする。すると線が表示される
- その線をそのままTestViewController.h→TestView の定義内まで引っ張ってはなす
- すると項目の作成ウィンドウが表示される。そこにコントロール名を入力してConnectボタンを押す
- ここでは bgView と名付けたことにする
- TestViewController.h/mに定義と解放処理が自動追加される
@interface TestView : UIView {
//この位置でドロップ。下の物が追加される。
IBOutlet UIImageView *bgView ;
}
@end
@implementation TestView
- (void) dealloc {
// こんな感じに自動追加される。
[bgView release] ;
[super dealloc] ;
}
@end
- 上の例ではオブジェクトとして自動作成したが、{} の外に置けばプロバティとして作成できる
- ニーズに合わせて選択するとよさげ
4.表示
ここまでで基本的なセットアップは完了している。
initWithNibNameメソッドを使ってやればロード処理も支障なく行えるはず。
- (void) hoge {
// UIの生成。
TestViewController viewCtrllr = [[TestViewController alloc]
initWithNibName:"TestViewController " bundle:nil] ;
// UINavigationController を作成して
// 親ビューのpresentModalViewControllerメソッドに入れてやれば表示もOK
...
}