在開發(fā)項(xiàng)目的時候计螺,遇到了一個問題,就是其中一個頁面需要強(qiáng)制橫屏瞧壮,而其他頁面要強(qiáng)制豎屏登馒。
我的解決方法是這樣的。在AppDelegate.h里面添加
@property(nonatomic,assign)NSInteger allowRotation;
在AppDelegate.m
文件里面添加
- (NSUInteger)application:(UIApplication *)application supportedInterfaceOrientationsForWindow:(UIWindow *)window
{
if (_allowRotation == 1) {
return UIInterfaceOrientationMaskLandscapeRight;
}
else {
return (UIInterfaceOrientationMaskPortrait);
}
}
這樣默認(rèn)所有的頁面就是豎屏的咆槽,在要跳轉(zhuǎn)的強(qiáng)制橫屏的頁面的控制器UIViewController里面陈轿,引入#import "AppDelegate.h"
然后
- (void)viewDidLoad{
[super viewDidLoad];
AppDelegate * appDelegate = (AppDelegate *)[UIApplication sharedApplication].delegate;
appDelegate.allowRotation = 1;
}
同時在進(jìn)行模態(tài)跳轉(zhuǎn)返回的豎屏頁面,需要添加以下代碼
-(void)viewWillAppear:(BOOL)animated{
AppDelegate * appDelegate = (AppDelegate *)[UIApplication sharedApplication].delegate;
appDelegate.allowRotation = 0;
}
如果不添加上面的代碼秦忿,模態(tài)跳轉(zhuǎn)返回后麦射,頁面依然是橫屏的。
就可以讓個別頁面單獨(dú)橫屏了灯谣,測試了一下潜秋,只有模態(tài)跳轉(zhuǎn)的頁面,可以改變屏幕方向胎许,push的不行峻呛。
截屏如下
1.gif