UINavigationViewController中的UIInterfaceOrientation

时间:2011-05-31 11:57:51

标签: iphone ios

我在视图中遇到自动旋转问题,这是在UINavitionViewController内部,而navigationViewcontroller在tabBarViewController中。

我将tabBarViewController子类化。问题是interfaceorientation在tabViewController内的第一个视图上运行正常,但每当我推送到另一个视图时它都不起作用。

这是子类tabBarController

中的代码
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
    return YES;
    if([self.selectedViewController isKindOfClass:[UINavigationController class]]){
        return [[(UINavigationController*)self.selectedViewController visibleViewController] shouldAutorotateToInterfaceOrientation:interfaceOrientation];
    } else {
        return [self.selectedViewController shouldAutorotateToInterfaceOrientation:interfaceOrientation];
    }
}

2 个答案:

答案 0 :(得分:0)

您必须覆盖标签栏中所有视图的视图控制器中的shouldAutorotateToInterfaceOrientation :.

如果视图控制器的shouldAutorotateToInterfaceOrientation:返回NO,那么即使视图在旋转时隐藏,标签栏也不会旋转。

答案 1 :(得分:0)

UIViewController内的UINavigationController内应该有UITabBarController。轮播由shouldAutorotateToInterfaceOrientation:中的UIViewController决定。您需要为每个UIViewController覆盖该方法以返回所需的值,例如,YES如果您希望它旋转,NO如果您不想要它。

您不应覆盖shouldAutorotateToInterfaceOrientation:UINavigationController中的UITabBarController