ipad  ios6以上 屏幕旋转控制

来源:互联网 发布:CodeIgniter 知乎 编辑:程序博客网 时间:2024/05/17 21:55
1,首先说一下,ios6之前的系统 ,旋转控制,利用 shouldAutorotateToInterfaceOrientation: 来单独控制某个UIViewController的旋屏方向支持

-(BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation{

    //Return YES for supported orientations

    return (interfaceOrientation ==UIInterfaceOrientationPortrait);

}  

2,但是再ios6的系统上,上述方法被弃用了,取而代之的是以下2个方法,设置某个viewcontroller的旋转

-(BOOL)shouldAutorotate{

   if(self.preferredInterfaceOrientationForPresentation==UIInterfaceOrientationMaskLandscapeLeft|| self.preferredInterfaceOrientationForPresentation==UIInterfaceOrientationMaskLandscapeRight){//支持横屏

       returnYES;

    }

   return NO;//禁止旋转


}

-(NSUInteger)supportedInterfaceOrientations{

   returnUIInterfaceOrientationMaskLandscape;

// return UIInterfaceOrientationMaskPortrait;//禁止旋转

}

除了这个2个方法之外,还要再把程序的所有viewcontroller的添加,用以下方法替代

//    [windowaddSubview:testUserViewController_.view];替换为:

   window.rootViewController =testUserViewController_;


3, 如果整体程序的viewcontroller都不需要旋转,在appdelegate 中调用该方法

 

- (NSUInteger)application:(UIApplication*)application supportedInterfaceOrientationsForWindow:(UIWindow*)window{

   returnUIInterfaceOrientationMaskPortrait;

}


4,所以在做系统版本适配的时候,应该把1,2中的方法同时使用,程序会在不同系统版本的情况下去调用相应的设置方法。

原创粉丝点击