项目需求,app中大部分页面不支持旋转,仅指定的几个页面提供旋转支持:
通过查询相关资料,可通过以下方法实现
- (UIInterfaceOrientationMask)application:(UIApplication *)application supportedInterfaceOrientationsForWindow:(UIWindow *)window 这个方法是全局控制,页面旋转的。
如需要所有页面支持旋转则,直接返回UIInterfaceOrientationMaskAll;
- (BOOL)shouldAutorotate 控制视图控制器是否支持旋转
- (UIInterfaceOrientation)preferredInterfaceOrientationForPresentation 页面加载时优先显示的方向
- (UIInterfaceOrientationMask)supportedInterfaceOrientations 该视图控制器支持所有旋转的方向
这三个方法组合,可以防止“从指定的视图控制器(可以旋转的视图控制器)返回时,导致返回的上一个页面会存在旋转的bug”
以上功能的实现依赖于,在target中general栏目下已解锁多个方向(需要支持的方向)