设备方向纵向仅适用于一个视图控制器

时间:2015-01-18 07:14:55

标签: ios iphone

我只想在一个视图控制器中进行纵向定位。我这样做:

-(BOOL)shouldAutorotate{
    return NO;
}

-(NSInteger)supportedInterfaceOrientations:(UIWindow *)window{

    //    UIInterfaceOrientationMaskLandscape;
    //    24
    //
    //    UIInterfaceOrientationMaskLandscapeLeft;
    //    16
    //
    //    UIInterfaceOrientationMaskLandscapeRight;
    //    8
    //
    //    UIInterfaceOrientationMaskPortrait;
    //    2


    //    return UIInterfaceOrientationMaskLandscape;
    return 2;
}  

没有成功!!
我按照google的建议尝试了许多排列和组合,但仍无效。

3 个答案:

答案 0 :(得分:0)

您应该在shouldAutorotate中返回YES,因为如果您的应用处于横向状态,则在其他情况下您的视图无法旋转回纵向。

答案 1 :(得分:0)

你应该尝试为shouldAutoRotate返回YES以使下面的supportedInterfaceOrientations生效,并且在UIViewController上没有名为 - (NSInteger)supportedInterfaceOrientations:(UIWindow *)窗口的方法,而是使用:

此代码必须放在您想要仅限肖像的视图控制器中。

-(BOOL)shouldAutorotate
{
    return YES;
}

-(NSInteger)supportedInterfaceOrientations
{
   return UIInterfaceOrientationMaskPortrait;
}

答案 2 :(得分:0)

我在链接你的帖子,我回答了这样的问题。我希望它会有所帮助

How to change only one ViewController to landscape mode with UINavigationcontroller