zoukankan      html  css  js  c++  java
  • iPhone开发笔记(21)iOS 6旋转问题解决方法汇总

        iOS 6的SDK改变了以往控制UIViewController的方式,为了兼容iOS 5和iOS 6,需要对代码进行必要的调整。因为每个应用的结构不一样,所以再这篇文章中,我只讲了我所遇到的UITabBarController+UINavigationController的应用结构。此外,我也在最后列出了一些情况的解决方法,如果本文的方法对你遇到的问题不起作用,那么可以试试列出的连接给出的解决方法。

        1、在工程的设置界面将设备支持的旋转方向开关开启如下图:

        

        2、设置window的rootViewController

        在AppDelegate.h中

    - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
    {
        ......
        self.window.rootViewController = tabBarController;
        self.window.backgroundColor = [UIColor whiteColor];
        [self.window makeKeyAndVisible];
        
        return YES;
    }
    

        3、添加UITabBarController的Category

    @implementation UITabBarController (Background)
    
    -(BOOL)shouldAutorotate
    {
        //这里我是首先从全局的角度设置自动旋转为NO,因为不需要每个UIViewController都自动旋转。
        return NO;
    }
    
    - (NSUInteger)supportedInterfaceOrientations {
        //全局设置为
        return UIInterfaceOrientationMaskPortrait;
    }
    
    @end
    
    @implementation AppDelegate

        4、在需要开启自动旋转的UIViewController的.m文件中添加如下代码

    //iOS 5以前的旋转控制方法
    - (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
    {
        if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone) {
            return ((interfaceOrientation != UIInterfaceOrientationPortraitUpsideDown) &&
                    (interfaceOrientation != UIInterfaceOrientationLandscapeLeft) &&
                    (interfaceOrientation != UIInterfaceOrientationLandscapeRight));
        } else {
            return YES;
        }
    }
    
    /iOS 6的旋转控制方法
    - (BOOL)shouldAutorotate
    {
        return YES;
    }
    
    -(NSUInteger)supportedInterfaceOrientations
    {
        return UIInterfaceOrientationMaskAllButUpsideDown;
    }

        5、其他情况的解决方法参考

    http://stackoverflow.com/questions/12522903/uitabbarcontroller-rotation-issues-in-ios-6


  • 相关阅读:
    hdu 3790 最短路径问题
    hdu 2112 HDU Today
    最短路问题 以hdu1874为例
    hdu 1690 Bus System Floyd
    hdu 2066 一个人的旅行
    hdu 2680 Choose the best route
    hdu 1596 find the safest road
    hdu 1869 六度分离
    hdu 3339 In Action
    序列化和反序列化
  • 原文地址:https://www.cnblogs.com/dyllove98/p/3138719.html
Copyright © 2011-2022 走看看