在横向模式下锁定特定的UIViewController +强制横向方向

时间:2014-01-30 14:36:12

标签: ios objective-c ios6 ios7 uiinterfaceorientation

我有一个特定的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;
}

2 个答案:

答案 0 :(得分:0)

方法shouldAutorotateToInterfaceOrientation在iOS 6中已弃用。您希望使用supportedInterfaceOrientations方法。如果您还想在iOS 5或更早版本上运行,则需要实现这两种方法。

您还应该实现方法shouldAutorotate。

答案 1 :(得分:-1)

只需删除视图控制器中的所有方法并使用此方法

即可
-(void)viewDidAppear:(BOOL)animated{

[[UIDevice currentDevice] setValue:
 [NSNumber numberWithInteger: UIInterfaceOrientationLandscapeLeft]
                            forKey:@"orientation"];} 

快乐编码