Stop a modal UIViewController from rotating

后端 未结 3 1574
栀梦
栀梦 2021-01-13 18:34

The modal UIViewController\'s parent auto-rotates, but when the modal VC is up I only want it to appear in portrait and not be rotatable. I have tried simply re

3条回答
  •  灰色年华
    2021-01-13 19:13

    Basically, if you presenting Modal Controller on Any Container Controllers (i.e. UINavigationController) it have autorotation method return YES by default. So you have to make subclass for your UINavigation Controller and Deprecate Autorotation there.

    For iOS 5 use method:

    - (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation {
    
        return (toInterfaceOrientation == UIInterfaceOrientationPortrait) : self.enableRotations;
    }
    

    for iOS 6:

    - (NSUInteger)supportedInterfaceOrientations {
    
        switch ([UIDevice currentDevice].userInterfaceIdiom) {
    
            case UIUserInterfaceIdiomPad:   return UIInterfaceOrientationMaskAll;
            case UIUserInterfaceIdiomPhone: return UIInterfaceOrientationMaskPortrait;
        }
    }
    
    - (BOOL)shouldAutorotate {
    
        return NO;
    }
    

提交回复
热议问题