【发布时间】:2025-12-22 06:10:16
【问题描述】:
目前,在我的应用程序中,我不需要允许发生侧向,除了一个视图应该在用户侧向时显示另一个 uiview。假设我有 20 个 UIViewControllers 允许从 mainviewcontroller (UINavigationController) 访问。现在,还假设 UIViewController #7 在显示时有两个视图,一个显示为侧向,一个显示为纵向。 我不希望你们认为我想在应用程序的整个生命周期中消除 Rotation Orientation,而只是针对 19 个视图,并且最后一个 uiviewcontroller 支持它。
如果用户对那个视图进行了侧向定向,那么用户应该像往常一样看到应用程序,没有定向效果。
我希望用户只使用纵向视图,仅用于那个视图控制器。也许如果用户将手机旋转 180 度,上下颠倒,那么肯定,应用应该翻转但仍处于纵向视图中。
有人有什么想法吗?我正在部署到 iOS 6.1,所以我使用的一些方法已被弃用,这是我想要远离的......
比如这个方法:
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation
{
return NO;
}
我做过几个测试用例:
- (NSUInteger) supportedInterfaceOrientations
{
return UIInterfaceOrientationMaskPortrait;
}
- (UIInterfaceOrientation)preferredInterfaceOrientationForPresentation
{
return UIInterfaceOrientationPortrait;
}
- (BOOL) shouldAutorotate{
return NO;
}
我还检查了与 * 相关的问题,但我无法简单地找到答案。
我认为这应该是我覆盖的一种可能两种方法,但我不能这样做.....如何消除 UIViewController 中的侧面方向????
【问题讨论】:
-
只需设置应用属性即可锁定除一个方向以外的所有方向。它是应用属性第一个屏幕上的按钮。
-
参考已编辑的问题
-
UIViewController 或 UIView 中有一个函数可以返回支持的方向,只需修改它(这个名字我现在不知道)
-
@bengoesboom :
UIViewController方法supportedInterfaceOrientations -
如果你们注意到...我确实实现了方法supportedInterfaceOrientations...但我认为我没有正确使用它,因为应用程序仍然面向我试图消除的视图它为。
标签: iphone ios uiviewcontroller uinavigationcontroller uiinterfaceorientation