如何在新的模态视图控制器iOS上更改屏幕方向

时间:2013-09-05 21:49:52

标签: ios xcode orientation

我有一个使用Xcode为iPhone开发的应用程序,它以纵向模式显示我的视图控制器并激活旋转。

我的表格视图中有一个单元格以模态模式触发新的视图控制器(iPhoneSignVC),我的问题是......

有没有办法从一开始就确定我的新模态视图控制器的方向?我的意思是......我希望我的新视图控制器处于横向模式,并且在该特定viewController上没有激活屏幕旋转功能

到目前为止,我所做的是创建一个覆盖UINavigation控制器类的新类

#import "UINavigationController.h"
#import "iPhoneSignVC.h"

@implementation UINavigationController (overrides)

- (BOOL)shouldAutorotate
{
    id currentViewController = self.topViewController;

    if ([currentViewController isKindOfClass:[iPhoneSignVC class]])
        return NO;


    return YES;
}

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
    id currentViewController = self.topViewController;

    if ([currentViewController isKindOfClass:[iPhoneSignVC class]]){
        return (interfaceOrientation == UIInterfaceOrientationLandscapeLeft);
    }

    return (interfaceOrientation == UIInterfaceOrientationMaskAll);
}


@end

我试了这个没有成功......

提前感谢您的支持人员

2 个答案:

答案 0 :(得分:1)

根据底层操作系统的不同,需要考虑多种因素。 结帐very comprehensive questionthis solution

答案 1 :(得分:1)

我想这就是你所需要的模态视图所需的全部内容:

#import "UINavigationController.h"
#import "iPhoneSignVC.h"


@implementation UINavigationController (overrides)

- (NSUInteger)supportedInterfaceOrientations {

    if ([self.topViewController isKindOfClass:[iPhoneSignVC class]])
        return UIInterfaceOrientationMaskLandscape;

    return UIInterfaceOrientationMaskAll;
}
@end