【发布时间】:2014-03-06 22:39:21
【问题描述】:
如何强制我的一个视图控制器在 iOS 中全屏和横向显示?我的应用处于纵向模式,但我希望只有一个视图是横向和全屏。
我尝试了这个solution,其中包括使用以下方法实现 CustomUINavigationController 并在我想要旋转的视图控制器中添加 shouldAutorotate 方法:
//自定义UIAvigationController
-(NSUInteger)supportedInterfaceOrientations{
return UIInterfaceOrientationMaskLandscapeRight;
}
- (UIInterfaceOrientation)preferredInterfaceOrientationForPresentation{
return UIInterfaceOrientationLandscapeRight;
}
- (BOOL)shouldAutorotate{
return YES;
}
//UIViewController 我要自动旋转
- (NSUInteger)supportedInterfaceOrientations
{
return self.topViewController.supportedInterfaceOrientations;
}
我想我的问题与视图的 herachy 有关。如果我的 ViewController 是我的初始视图控制器但不是所有视图,它就可以工作。我有一个自定义菜单和一个占位符(视图),我在其中显示所有其他视图。我想成为横向和全屏的视图控制器来自占位符内部的视图,也许这是问题,但我现在不知道如何解决它。
【问题讨论】:
-
How to handle different orientations in iOS 6 的副本。请参阅我的答案,了解您所需要的项目示例。
-
@LeoNatan 它不工作。它在一个单独的项目中工作,但不适用于我的项目,我的观点是herachy。我收到警告:不鼓励在分离的视图控制器上呈现视图控制器。我有一个自定义菜单和一个占位符(视图),我可以在其中看到所有其他视图。我想成为横向和全屏的视图控制器来自占位符中的视图,也许这就是问题
-
当您的视图控制器没有父视图控制器或呈现视图控制器时,会引发该警告。您应该记住将所有子视图控制器作为子视图控制器添加到呈现视图控制器。
-
查看我的答案以获得更好的解决方案!
-
问题与子视图控制器有关。将所有子视图控制器作为子视图添加到视图控制器后,它就可以工作了。谢谢@LeoNatan
标签: ios objective-c rotation fullscreen