禁止转屏 :
在AppDelegate.m中增加这个方法,就可以禁止转屏
- (NSUInteger)application:(UIApplication *)application supportedInterfaceOrientationsForWindow:(UIWindow *)window
{
return UIInterfaceOrientationMaskPortrait;
}
某一个界面可以转屏:
需要写一个tabBarController的类,并写上以下方法
#import "MFTabBarViewController.h"
#import "UINavigationController+Autorotate.h"
@interface MFTabBarViewController ()
@end
@implementation MFTabBarViewController
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view.
}
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
return (interfaceOrientation == UIInterfaceOrientationPortrait);
}
- (UIInterfaceOrientationMask)supportedInterfaceOrientations {
return UIInterfaceOrientationMaskPortrait;
}
- (BOOL)shouldAutorotate
{
return YES;
}
-(BOOL)prefersStatusBarHidden
{
return NO;
}
@end
再创建一个 navigationViewController 的类 , 并写入以下方法
#import <UIKit/UIKit.h>
@interface UINavigationController (Autorotate)
- (BOOL)shouldAutorotate;
- (NSUInteger)supportedInterfaceOrientations;
@end
#import "UINavigationController+Autorotate.h"
@implementation UINavigationController (Autorotate)
////返回最上层的子Controller的shouldAutorotate
////子类要实现屏幕旋转需重写该方法
//- (BOOL)shouldAutorotate{
// return self.topViewController.shouldAutorotate;
//}
//
////返回最上层的子Controller的supportedInterfaceOrientations
//- (NSUInteger)supportedInterfaceOrientations{
// NSLog(@"%@", self.topViewController);
// return self.topViewController.supportedInterfaceOrientations;
//}
- (BOOL)shouldAutorotate {
if (self.topViewController != nil)
return [self.topViewController shouldAutorotate];
else
return [super shouldAutorotate];
}
- (NSUInteger)supportedInterfaceOrientations {
if (self.topViewController != nil)
return [self.topViewController supportedInterfaceOrientations];
else
return [super supportedInterfaceOrientations];
}
- (UIInterfaceOrientation)preferredInterfaceOrientationForPresentation {
if (self.topViewController != nil)
return [self.topViewController preferredInterfaceOrientationForPresentation];
else
return [super preferredInterfaceOrientationForPresentation];
}
@end