我用下面的方法來強制設置縱向只對一些選定的觀點和我的工作,可能是它會幫助你
1,創建一個全局標誌
在你的AppDelegate方法中的全局標誌上創建所以你可以在任何視圖控制器中訪問它。
在你AppDelegate.h
@property (assign) BOOL flagOrientationAll;
在你AppDelegate.m
@synthesize flagOrientationAll;
添加按照您的AppDelegate.m方法
- (NSUInteger)application:(UIApplication *)application supportedInterfaceOrientationsForWindow:(UIWindow *)window{
if(flagOrientationAll == YES){
return UIInterfaceOrientationMaskAll; // All orientation support
} else {
return UIInterfaceOrientationMaskPortrait; // Set only one orientation you want
}
}
2,添加以下代碼您要限制旋轉的ViewController .m
// set flag "flagOrientationAll" to rotate only one view in your particular view
#import AppDelegate.h
-(void)viewWillAppear:(BOOL)animated
{
NSLog (@"webViewController -- viewWillAppear");
[super viewWillAppear:animated];
AppDelegate *delegate = (AppDelegate *) [[UIApplication sharedApplication] delegate];
delegate.flagOrientationAll = YES;
}
-(void)viewWillDisappear:(BOOL)animated
{
AppDelegate *delegate = (AppDelegate *)[[UIApplication sharedApplication] delegate];
delegate.flagOrientationAll = NO;
}
這裏我的帖子:How to set one of the screens in landscape mode in iphone?
如果你得到任何麻煩讓我知道!
希望這可以幫助你http://stackoverflow.com/questions/31158690/force-the-ios-device-to-change-orientation/31158872#31158872 – Sujania
你是否在一個導航控制器? 如果是這樣,你應該重寫導航控制器中的方法。 – Jaeger
我不在導航控制器內 – Techiee