ラジオインターフェイスにビューを追加する
前回:ラジオインターフェイスを実装するの続き。
概要
-
- TabBarに追加したいUIViewControllerを配列にし、UITabViewControllerに登録する。
- UIViewControllerのインスタンス変数、title と tabBarItem を設定しておくことで、画面表示時にTabBarにそのtitleとimageが表示される。
- 今回は、SimpleWindowというNIBファイルを作成し、SimpleViewControllerをその管理クラスにする。
1. Xcode
- Xcodeの新規ファイルから UIViewController Subclass を選択し、名前をSimpleViewControllerとして保存する。
- グループとファイルで、ViewControllersというグループを作りそこのSimpleViewController.h/.mを移動しておくと見やすくなる。
SimpleViewController.m
シグネチャ:initWithNibName:bundle: のコメントを無効にし、次のように編集する
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil { if (self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]) { // Custom initialization self.title = @"Simple"; // 追加 self.tabBarItem.image = [UIImage imageNamed:nil]; // 追加(とりあえず画像なし) } return self; }applicationDidFinishLaunching:でこのメソッドがコールされ、インスタンスが生成される。
2. Interface Builder
- Interface BuilderのNew...メニューから、Cocoa TouchのViewを選択し、SimpleWindowとして保存する。
- 保存場所をプロジェクトフォルダ直下にし、プロジェクトに登録しておくこと。
SimpleWindow.xib
- File's Owner の Class Identity を Xcode で作成した SimpleViewController にする
- File's Owner の viewアウトレットを、view に接続する
- viewオブジェクトを開き、viewウィンドウを表示する
- Simulated Bar Metrix の Status Bar をGray、Bottom Bar をTab Bar にする
- viewに Label をドラッグ&ドロップで配置し、Text に Simple View と設定する
- 最後に保存(閉じてもよい)
3. Xcode
- AppDelegate.m で SimpleWindow のインスタンスを4つ用意し、TabBarController に追加する。
AppDelegate.m
#pragma mark UIApplicationDelegate Protocol - (void)applicationDidFinishLaunching:(UIApplication *)application { // SimpleViewControllerのインスタンスを4つ生成 SimpleViewController *aViewController1 = [[SimpleViewController alloc] initWithNibName:@"SimpleWindow" bundle:[NSBundle mainBundle]]; SimpleViewController *aViewController2 = [[SimpleViewController alloc] initWithNibName:@"SimpleWindow" bundle:[NSBundle mainBundle]]; SimpleViewController *aViewController3 = [[SimpleViewController alloc] initWithNibName:@"SimpleWindow" bundle:[NSBundle mainBundle]]; SimpleViewController *aViewController4 = [[SimpleViewController alloc] initWithNibName:@"SimpleWindow" bundle:[NSBundle mainBundle]]; // AppDelegateのインスタンス変数tabBarControllerにSimpleViewControllerを追加する NSArray *aArray = [NSArray arrayWithObjects:aViewController1, aViewController2, aViewController3, aViewController4, nil]; tabBarController.viewControllers = aArray; // 破棄 [aViewController1 release]; [aViewController2 release]; [aViewController3 release]; [aViewController4 release]; [aArray release]; [window addSubview:[tabBarController view]]; // Override point for customization after application launch [window makeKeyAndVisible]; }
- 実行
参考になった情報
iPhone OS View Controller プログラミングガイド.pdf