程序的根控制器用了UINavigationController。下面是代碼:
1.在appdelegate中添加代碼:
- (NSUInteger)application:(UIApplication *)application supportedInterfaceOrientationsForWindow:(UIWindow *)window
{
return UIInterfaceOrientationMaskAll;
}
2.給UINavigationController添加個category,在實現文件中添加如下代碼:
-(BOOL)shouldAutorotate
{
return [[self topViewController] shouldAutorotate];
}
-(NSUInteger)supportedInterfaceOrientations
{
return [[self topViewController] supportedInterfaceOrientations];
}
- (UIInterfaceOrientation)preferredInterfaceOrientationForPresentation
{
return [[self topViewController] preferredInterfaceOrientationForPresentation];
}
3.在需要橫屏的地方添加(豎屏可以更換方向):
-(NSUInteger)supportedInterfaceOrientations{
return UIInterfaceOrientationMaskLandscapeRight; // 可以修改為任何方向
}
-(BOOL)shouldAutorotate{
return YES;
}
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
return interfaceOrientation == UIInterfaceOrientationLandscapeRight;
}
4.最重要的是:頁面之間切換不能用導航控制器切換,必須使用:
[self presentViewController:navigationController animated:YES completion:Nil];