lockingViewController的方向

我有支持所有types的方向的应用程序,但是我希望某些viewControllers只支持风景,很less要lockingPotrait模式。 我怎么能做到这一点,我已经尝试了下面的代码,但没有任何工作。

- (BOOL)shouldAutorotate { return NO; } - (NSUInteger)supportedInterfaceOrientations { return UIInterfaceOrientationMaskPortrait; } // pre-iOS 6 support - (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation { return (toInterfaceOrientation == UIInterfaceOrientationPortrait); } 

所有推送到相同导航控制器的视图控制器必须支持相同的方向。 具体来说,我相信只有根视图控制器应该把shouldAutorotateToInterfaceOrientation考虑在内。 你可以看看这个SO贴子的一种解决方法; 或在这一个不同的方法,可以有所帮助。

我上面链接的第二篇文章build议使用这个定义为shouldAutorotateToInterfaceOrientation你可能会调整你的情况:

 - (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation { if ([self.selectedViewController isKindOfClass:[UINavigationController class]]) { UIViewController *rootController = [((UINavigationController *)self.selectedViewController).viewControllers objectAtIndex:0]; return [rootController shouldAutorotateToInterfaceOrientation:interfaceOrientation]; } return [self.selectedViewController shouldAutorotateToInterfaceOrientation:interfaceOrientation]; }