1
我用新的Xcode 4.2创建了一个新的“标签栏项目”。 使用UITabBar的“新”方式不同:Xcode不会创建xib文件(使用UITabBarController),但它通过代码完成所有工作。好的,让我们来做吧。使用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;
和它的作品。
我的三个.m文件vc1.m,vc2.m和vc3.m(也是我的iPad UIViewControllers)有这个方法
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
return YES;
}
的问题是,当我旋转iPhone,它只是旋转状态栏,而不是TabBarController!
你知道为什么吗? 谢谢
你的三个视图控制器类称为gemboy_iphone,concerti_iphone和discografia_iphone,但它们驻留在文件vc1.m,vc2.m和vc3.m中是很常见的。你确定这是正确的吗? XCode不会因为它们的名称与nib名称相似而找不到这些文件。如果他们确实包含这些类,并且您已将文件的所有者类型设置为这些类的nib中的类型,则会发生这种情况。 – morningstar