我正在处理一个包含大约12个视图的应用程序。我希望有些人只是肖像,有些人则是风景。
我如何将一些视图的方向锁定为肖像,将其他方向锁定为风景图?
我尝试了上一个示例中的代码,但它没有锁定方向。
[[UIDevice currentDevice] setValue:
[NSNumber numberWithInteger: UIInterfaceOrientationLandscapeLeft]
forKey:@"orientation"];
答案 0 :(得分:3)
经过近24小时的尝试,我终于解决了这个问题。对于一个“ShouldAutoRotate”永远不会被调用。这就是我到处都能找到的“只需添加shouldAutoRotate”......没有用。此外,我不确定为什么人们会对我的问题进行投票。
对我来说,最重要的是将下面的方法添加到我的Appdelegate.m文件中。
- (NSUInteger)application:(UIApplication *)application supportedInterfaceOrientationsForWindow:(UIWindow *)window{
NSUInteger orientations = UIInterfaceOrientationMaskAllButUpsideDown;
if(self.window.rootViewController){
UIViewController *presentedViewController = [[(UINavigationController *)self.window.rootViewController viewControllers] lastObject];
orientations = [presentedViewController supportedInterfaceOrientations];
}
return orientations;
}
然后将下面的方法添加到我想要锁定到landscape的viewcontroller.m文件中。
- (NSUInteger)supportedInterfaceOrientations{
return UIInterfaceOrientationMaskLandscape;
}
答案 1 :(得分:-1)
您必须在ViewController中实现supportedInterfaceOrientation
和shouldAutorotate
。