我在我的iOS 6应用程序中遇到了一个不同的问题。我有一个用于窗口的rootviewcontroller的UITabBarController,然后我在这个tabbBarController中有4个uiviewcontrollers,现在我想要两个只是显示“UIInterfaceOrientationMaskPortrait”,以及另外两个显示在“UIInterfaceOrientationMaskLandscape”中,问题是当我从“UIInterfaceOrientationMaskPortrait”中显示的那个点击到另一个是UIInterfaceOrientationMaskLandscape的viewController时,然而新选择的viewcontroller仍然是“UIInterfaceOrientationMaskPortrait”,但是当我旋转设备时,新的选定的视图控制器旋转到“UIInterfaceOrientationMaskLandscape”.....
有什么方法可以让tabbarviewcontroller在我点击不同的viewControllers时可以自动旋转?
下面是我的代码: 我让alerady在TR_UITabViewController.m中使用了UITabBarController的子类
-(NSUInteger)supportedInterfaceOrientations
{
return [self.selectedViewController supportedInterfaceOrientations];
}
-(BOOL)shouldAutorotate
{
return [self.selectedViewController shouldAutorotate];
}
也在appdelegate.m中我实现了方法
(NSUInteger)应用程序:(UIApplication *)application supportedInterfaceOrientationsForWindow:(UIWindow *)window { NSUInteger orientationations = UIInterfaceOrientationMaskAllButUpsideDown;
如果(self.window.rootViewController){ UITabBarController * presentsViewController =(UITabBarController *)self.window.rootViewController; UIViewController * currentVC = presentsViewController.selectedViewController;
NSLog(@"currentVC info:%@",[currentVC description]);
if ([currentVC isKindOfClass:[UIViewController class]]) {
orientations = [currentVC supportedInterfaceOrientations];
// self.tabBarController.=[currentVC supportedInterfaceOrientations];
} else if([currentVC isKindOfClass:[UINavigationController class]]) {
UINavigationController * nvc=(UINavigationController*)currentVC;
UIViewController * vc=nvc.topViewController;
orientations = [vc supportedInterfaceOrientations];
}
}
返回方向; }
3.最后我在每个视图控制器中编写了以下两种方法 - (BOOL)shouldAutorotate; &安培; - (NSUInteger)supportedInterfaceOrientations
在世界上,有人知道如何在tabbarviewcontroller中点击不同的视图控制器时强制更改方向吗?