zoukankan      html  css  js  c++  java
  • 【iOS】ios6.0 UINavigationController支持屏幕自动旋转

    问题描述:

    当从页面A跳转到页面B时,使用的是UINavigationController的presentViewController:animated:completion:方法。如果页面A是纵向UI,而页面B则在xib配置中是横向UI,不论在B的viewController实现文件中如何设置,从A到B跳转后,B为纵向显示,无法受其控制。

    原因:

    猜测是因为presentViewController:animated:completion:时,旋转控制权在parentViewController上,B页面无法拿到控制权。

    解决方案:

    重写UINavigationController的旋转方法,使viewController能够拿到旋转权。

    代码如下:

    UINavigationController+Rotation_IOS6.h

    @interface UINavigationController (Rotation_IOS6)
    
     -(BOOL)shouldAutorotate;
     -(NSUInteger)supportedInterfaceOrientations;
     -(UIInterfaceOrientation)preferredInterfaceOrientationForPresentation;
    
     @end

    UINavigationController+Rotation_IOS6.m

    @implementation UINavigationController (Rotation_IOS6)
     -(BOOL)shouldAutorotate {
         return [[self.viewControllers lastObject] shouldAutorotate];
     }
     
     -(NSUInteger)supportedInterfaceOrientations {
         return [[self.viewControllers lastObject] supportedInterfaceOrientations];
     }
     
     - (UIInterfaceOrientation)preferredInterfaceOrientationForPresentation {
         return [[self.viewControllers lastObject] preferredInterfaceOrientationForPresentation];
     }
     @end
    作者:风倾清凌
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利.
  • 相关阅读:
    C语言I博客作业09
    请看这里
    C++ 面向对象学习笔记[1]
    graphviz的使用
    KDE安装后的一些随笔
    近期内容整理
    链表
    理解C++ lvalue与rvalue
    再看“笕实智慧校园”——作品的复盘[1]
    无题
  • 原文地址:https://www.cnblogs.com/Amandaliu/p/3135837.html
Copyright © 2011-2022 走看看