Modal View Controller force Landscape orientation in iOS 6

前端 未结 4 859
陌清茗
陌清茗 2021-02-15 11:41

I have a UITabBarController presented in Portrait mode. On one of the tabs I have a button that shows a UIViewController modally (A simple storyboard segue performs the action).

相关标签:
4条回答
  • 2021-02-15 11:44

    I do exactly this in my app, and do it via shouldAutoRotateToInterfaceOrientation, slightly differently than you:

    - (BOOL) shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
    {
     if (UIInterfaceOrientationIsLandscape(interfaceOrientation))
      return (YES);
     return (NO);
    }
    

    for iOS 6, you must also set window.rootViewController = {your root view controller}; in your app delegate. I'm hoping this is your issue

    0 讨论(0)
  • 2021-02-15 11:49

    If you want to force rotation in iOS6, your rootviewController should implement these methods:

    - (NSUInteger)supportedInterfaceOrientations {
        return UIInterfaceOrientationMaskLandscape;
    }
    
    - (BOOL)shouldAutorotate {
        return YES;
    }
    
    0 讨论(0)
  • 2021-02-15 11:53

    In iOS 6 it seems to be this method may help force a specific orientation on iOS 6.

    - (NSUInteger)supportedInterfaceOrientations {
        return UIInterfaceOrientationMaskLandscape;
    }
    

    I am still trying to get it to work and will update with any findings.

    0 讨论(0)
  • 2021-02-15 11:57

    iOS 6.0 Release Notes
    "More responsibility is moving to the app and the app delegate. Now, iOS containers (such as UINavigationController) do not consult their children to determine whether they should autorotate. "

    -(BOOL)shouldAutorotate of UIViewController under any Container (like UINavigationController) will not be called from IOS6.

    Tried a solution with using Category to add method to existing UINavigationController Class.

    inside the shouldAutorotate method, you can call shouldAutorotate method in each view controller of self.viewControllers. In fact, you can pass to your child view controller.

    0 讨论(0)
提交回复
热议问题