2011-10-27 9 views
1

新しい「Xcode 4.2」で新しい「タブバープロジェクト」を作成しました。 UITabBarで動作する「新しい」方法は異なります.Xcodeは(UITabBarControllerを使用して)xibファイルを作成するのではなく、コードですべてを行います。 さて、それでしましょう。UITabBarControllerでインターフェイスを回転

だから、didFinishLaunchingWithOptionsでの私のコードはこれです:

UIViewController *viewController1, *viewController2, *viewController3; 
UINavigationController *nav1, *nav2, *nav3; 

if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone) { 

    viewController1 = [[gemboy_iphone alloc] initWithNibName:@"vc1" bundle:nil]; 
    viewController2 = [[concerti_iphone alloc] initWithNibName:@"vc2" bundle:nil]; 
    viewController3 = [[discografia_iphone alloc] initWithNibName:@"vc3" bundle:nil]; 

    nav1 = [[UINavigationController alloc] initWithRootViewController:viewController1]; 
    nav2 = [[UINavigationController alloc] initWithRootViewController:viewController2]; 
    nav3 = [[UINavigationController alloc] initWithRootViewController:viewController3]; 

} 
else { 
    //same thing for the iPad version 
} 
self.tabBarController = [[UITabBarController alloc] init]; 
self.tabBarController.viewControllers = [NSArray arrayWithObjects:nav1, nav2, nav3, nil]; 
self.window.rootViewController = self.tabBarController; 
[self.window addSubview:self.splash.view]; 
[self.window makeKeyAndVisible]; 
return YES; 

そして、それは動作します。

私の3つの.Mファイルvc1.m、vc2.mとvc3.m(とも私のiPad UIViewControllers)は、この方法

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation 
{ 
    return YES; 
} 

を持っている問題は、私はiPhoneを回転させたときに、それが唯一の回転ということですステータスバー、TabBarControllerではなく!

あなたはその理由を知っていますか? ありがとう

+0

3つのView Controllerクラスがgemboy_iphone、concerti_iphone、およびdiscografia_iphoneと呼ばれることは珍しいことですが、vc1.m、vc2.m、およびvc3.mファイルにあります。それが正しいと思いますか?名前がペン先名に似ているだけなので、XCodeはそれらのファイルを見つけられません。実際にそれらのクラスが含まれていれば、それらのクラスにファイルの所有者タイプを設定します。 – morningstar

答えて

2

あなたは絶対にUITabBarControllerをサブクラス化する必要はありません。

タブバーコントローラは、すべてのビューコントローラがshouldAutorotateToInterfaceOrientationを実装していて、同じ方向に対してYESを返す場合は、自動的に回転します。

Xcode 4.2でタブ付きアプリケーションテンプレートを使用して新しいプロジェクトを作成すると、自動的に回転することがわかります。

関連する問題