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
    作者:风倾清凌
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利.
  • 相关阅读:
    Hello,world的几种写法!
    浮动与清除浮动
    css中表格的table-layout属性特殊用法
    CSS之照片集效果
    CSS之transition过渡练习
    CSS之过渡简单应用—日落西山
    CSS之立方体绘画步骤
    CSS之立体球体
    transform
    Vue.sync修饰符与this.$emit('update:xxx', newXXX)
  • 原文地址:https://www.cnblogs.com/Amandaliu/p/3135837.html
Copyright © 2011-2022 走看看