0

我有一个 UINavigationController,它的第一个 ViewController 是一个 UITabBarController,它不应该旋转......然后推 UIViewController 应该旋转......

到目前为止,我已经将 UINavigationController 子类化并实现了这些方法:

- (BOOL) shouldAutorotate {
    return [self.visibleViewController shouldAutorotate];
}

- (NSUInteger)supportedInterfaceOrientations {
    return [self.visibleViewController supportedInterfaceOrientations];
}

所以它是子控制器选择它是否应该自动旋转......到目前为止,我已经设法阻止 UITabBarController 的旋转并允许推送的 UIViewController 旋转。

唯一的问题是,如果 UIViewController 处于横向模式,当我弹出它时,UITabBarController 也将处于横向模式,直到手机进入纵向模式,它会恢复正常并且不再旋转.. .

我希望当我弹出 Landscape UIViewController 时,UITabBarController 已经处于纵向模式。

这个新的 iOS 6.0 UI 旋转管理似乎很痛苦!

4

1 回答 1

0

正如您所说的那样,设备尚未旋转,因此在弹出旧视图控制器时,显示的视图控制器不会坚持旋转方向。如果这是您想要的行为,请改用呈现的视图控制器。

您可以通过旋转状态栏来强制界面旋转,但前提是supportedInterfaceOrientations返回 0。

于 2013-02-13T14:47:04.943 回答