【发布时间】:2012-11-06 18:08:40
【问题描述】:
我试图限制一个位于 UINavigationController 之上的视图控制器。为此,我创建了一个 UINavigationController 子类并实现了 2 个方法
- (BOOL)shouldAutorotate {
return [[self.viewControllers lastObject] shouldAutorotate];}
- (NSUInteger)supportedInterfaceOrientations {
return [[self.viewControllers lastObject] supportedInterfaceOrientations];}
我希望 UINavigationController(它是根视图控制器)顶部的第一个视图控制器应该处于纵向模式,而我从根视图控制器推送的下一个视图控制器应该是横向模式(仅)。
所以我在两个视图控制器中都覆盖了这两种方法。 在根视图控制器中
- (BOOL)shouldAutorotate {
return NO;}
- (NSUInteger)supportedInterfaceOrientations {
return UIInterfaceOrientationMaskPortrait;}
在下一个视图控制器中
- (BOOL)shouldAutorotate {
return YES;}
- (NSUInteger)supportedInterfaceOrientations {
return UIInterfaceOrientationMaskLandscape;}
它工作正常但不完全。当我第一次推动视图控制器时,它以纵向模式显示(不像我预期的那样限制为横向),并且一旦我旋转设备/模拟器并且它工作正常并且仅限于横向。
有人可以帮忙吗?
【问题讨论】: