画面の高さを確認し、プログラムで使用するxibを選択できます。
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
MyFirstViewController *vc1 = nil;
MySecondViewController *vc2 = nil;
if(UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone) {
CGSize screenSize = [[UIScreen mainScreen] bounds].size;
if(screenSize.height == 568) {
vc1 = [[MyFirstViewController alloc] initWithNibName:@"LargeFirstViewController" bundle:nil];
vc2 = [[MySecondViewController alloc] initWithNibName:@"LargeSecondViewController" bundle:nil];
}
if(screenSize.height == 480) {
vc1 = [[MyFirstViewController alloc] initWithNibName:@"SmallFirstViewController" bundle:nil];
vc2 = [[MySecondViewController alloc] initWithNibName:@"SmallSecondViewController" bundle:nil];
}
}
else if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) {
// ... Add iPad code here if relevant.
}
self.tabBarController = [[UITabBarController alloc] init];
self.tabBarController.viewControllers = @[vc1, vc2];
self.window.rootViewController = self.tabBarController;
[self.window makeKeyAndVisible];
return YES;
}
タブバーアイコンの画像をプログラムで変更するには、View Controllerで次の画像を編集します(「YOUR-IMAGE」を実際の名前に置き換えます...拡張子(.pngなど)を付けないでください)。
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
if (self) {
self.tabBarItem.image = [UIImage imageNamed:@"YOUR-IMAGE"];
}
return self;
}
新しいxibファイルを作成するときは、「ファイル所有者」(「プレースホルダー」の下)を選択し、「カスタムクラス」を属性インスペクターで実際のビューコントローラークラスに設定することを忘れないでください。また、「ファイル所有者」を選択した状態で、「接続インスペクター」に移動し、「ビュー」アウトレットをxibのトップレベルビューにドラッグします。