我有一个应用程序支持方向纵向和横向。但是在一个viewcontroller中我只想让它出现在LANDSCAPE模式中。我尝试覆盖一些改变方向的方法,例如
- (BOOL)shouldAutorotate {
return NO;
}
- (UIInterfaceOrientationMask)supportedInterfaceOrientations {
return UIInterfaceOrientationMaskLandscapeLeft | UIInterfaceOrientationMaskLandscapeRight;
}
- (UIInterfaceOrientation)preferredInterfaceOrientationForPresentation {
return (UIInterfaceOrientationLandscapeLeft | UIInterfaceOrientationLandscapeRight);
}
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation {
if (UIInterfaceOrientationIsLandscape(toInterfaceOrientation)) {
return YES;
}
return NO;
}
但是在iOS 9中都没有调用它们。因此,这个viewcontroller同时呈现纵向和横向。相反,它在iOS 8中完美运行。
太烦人了,无论如何只能强制在iOS 9中以横向模式呈现的viewcontroller
更新: 正如Ronak Chaniyara的回答,我解决了我的问题,只有一个控制器处于横向模式。 现在我面临另一个问题。如果我想在纵向模式下强制一个控制器,我在控制器中实现这些方法,但如果我旋转屏幕它仍然会旋转。
解决方案是否仍然可以使用纵向模式,或者我必须找到另一种强制控制器处于纵向模式的方法
答案 0 :(得分:4)
我认为问题是你已经在info.plist
中定义了允许的方向,这显然会覆盖整个项目中其他任何地方所做的任何事情。
要解决此问题,我从info.plist
中删除了条目,并在项目设置中对其进行了定义。现在一切都按预期工作了。
希望这有帮助。
答案 1 :(得分:1)
查看您的info.plist文件。这里有一个名为“支持接口方向”的键,其中包含一个用于iPhone版本的组和另一个用于iPad的组。
您可以在此处删除值“纵向(底部主页按钮)”,并将其替换为“横向(左侧主页按钮)”或“横向(右侧主页按钮)”。
我希望它有所帮助!
答案 2 :(得分:1)
通过这种方式,您可以:
希望这能帮到你