阻止UIView进入景观
我在导航控制器内部有一个UIView,我试图阻止这个视图进入Landscape但是我试图使用的方法永远不会触发..代码低于任何帮助将非常感激..
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation { if(interfaceOrientation == UIInterfaceOrientationLandscapeRight) { return NO; } else if(interfaceOrientation == UIInterfaceOrientationLandscapeLeft) { return NO; } return NO; }
你应该设置return NO;
对于父导航控制器或UIViewController
,而不是UIView
。
此外,这与更少的代码一样工作:
iOS 5.x.
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation { return (interfaceOrientation == UIInterfaceOrientationPortrait); }
iOS 6
从iOS 6开始, shouldAutorotateToInterfaceOrientation:
已弃用。 如果视图控制器未覆盖supportedInterfaceOrientations
方法,则UIKit
将从应用程序委托或应用程序的Info.plist文件中获取默认轮换。
你需要使用:
- (NSUInteger)supportedInterfaceOrientations NS_AVAILABLE_IOS(6_0);
另一个选择是修改部署信息。
此方法需要在UIViewController
实例中实现,而不是UIView
。
此外,您实际上是为所有方向返回NO
,这是不正确的。 您需要为至少一个方向(最常见的是UIInterfaceOrientationPortrait
)返回YES
。