【发布时间】:2012-09-22 17:24:50
【问题描述】:
我有一个关于 iOS 6 Orientation 的问题。这是我的文件 https://www.dropbox.com/s/f8q9tghdutge2nu/Orientations_iOS6.zip
在这个示例代码中,我想让MasterViewController 仅具有纵向方向,而DetailViewController 具有纵向方向、横向方向。
我知道 iOS 6 的方向是由最上面的控制器控制的。
所以我自定义了一个UINavigationController(CustomNavigationController),在该类中设置了supportedInterfaceOrientations 和shouldAutorotate。
-(NSUInteger)supportedInterfaceOrientations{
if([[self topViewController] isKindOfClass:[DetailViewController class]]){
return UIInterfaceOrientationMaskAllButUpsideDown;
}else{
return UIInterfaceOrientationMaskPortrait;
}
}
-(BOOL)shouldAutorotate
{
return YES;
}
一切都很好,除非DetailViewController 在横向方向按下返回按钮,MasterViewController 将显示横向方向。
我可以让MasterViewController 总是显示纵向,而DetailViewController 可以有多个方向吗?
谢谢!
【问题讨论】:
-
我今天找到了解决方案。在您的 CustomNavigationController 中设置 - (NSUInteger)supportedInterfaceOrientations { return [[self topViewController] supportedInterfaceOrientations]; } 然后在 MasterViewController 上设置 - (NSUInteger)supportedInterfaceOrientations { return UIInterfaceOrientationMaskPortrait; }
-
如果您找到了问题的答案,您应该将您的答案作为答案发布,并将其标记为正确,没关系。
标签: ios orientation landscape ios6 portrait