我有一个特定的UIViewController,我想锁定/强制它仅定向到Landscape。
这是我到目前为止所做的,但没有任何成功......我正试图让这个适用于iOS 6& 7。
我做错了什么?
- (UIInterfaceOrientation)preferredInterfaceOrientationForPresentation{
// Return YES for supported orientations
return UIInterfaceOrientationMaskLandscape;
}
- (BOOL)shouldAutorotate {
return YES;
}
- (NSUInteger)supportedInterfaceOrientations{
if([AppConst isIPad]){
return UIInterfaceOrientationMaskLandscape;
}
return UIInterfaceOrientationMaskLandscape;
}
//not ios6
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
if([AppConst isIPad]){
return YES;
}
return interfaceOrientation == UIInterfaceOrientationLandscapeRight;
}
答案 0 :(得分:0)
方法shouldAutorotateToInterfaceOrientation在iOS 6中已弃用。您希望使用supportedInterfaceOrientations方法。如果您还想在iOS 5或更早版本上运行,则需要实现这两种方法。
您还应该实现方法shouldAutorotate。
答案 1 :(得分:-1)
只需删除视图控制器中的所有方法并使用此方法
即可-(void)viewDidAppear:(BOOL)animated{
[[UIDevice currentDevice] setValue:
[NSNumber numberWithInteger: UIInterfaceOrientationLandscapeLeft]
forKey:@"orientation"];}
快乐编码