- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation //已经相当弱化
- (NSUInteger)application:(UIApplication *)application supportedInterfaceOrientationsForWindow:(UIWindow *)window
//新增Api,与info.plist设备支持旋转方向神似(区别在于default.png)且注意与UIInterfaceOrientation不同的是这的NSUInteger返回值为UIInterfaceOrientationMaskPortrait|...等
//iOS6新增Api来控制旋转,需要注意的是顶层才是有效的
- (BOOL)shouldAutorotate
{
return NO;
}
-(NSUInteger)supportedInterfaceOrientations
{
return UIInterfaceOrientationMaskPortrait;
}
//习惯使用的presentModalViewController navigation controller在旋转上已经出现了大问题,可用category解决
@implementation UINavigationController (autorotate)
- (NSUInteger)supportedInterfaceOrientations{
NSArray *arr = self.viewControllers;
if ([arr count] == 0) {
return UIInterfaceOrientationMaskPortrait;
}
id vc = [arr objectAtIndex:0];
if ([vc isKindOfClass:[TestNoRotation class]]) {
return UIInterfaceOrientationMaskPortrait;
}
if ([vc isKindOfClass:[TestAutoRotation class]]) {
return UIInterfaceOrientationMaskPortrait | UIInterfaceOrientationMaskPortraitUpsideDown | UIInterfaceOrientationMaskLandscapeLeft | UIInterfaceOrientationMaskLandscapeRight;
}
return UIInterfaceOrientationMaskPortrait;
}
@end
//MainViewController中开启旋转
- (BOOL)shouldAutorotate
{
return YES;
}
-(NSUInteger)supportedInterfaceOrientations
{
return UIInterfaceOrientationMaskLandscape;
}
-----------------------------------切糕分割线----------------------------------
假如如下方法禁止旋转:
- (BOOL)shouldAutorotate
{
return NO;
}
或
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
return NO;
}