1.在AppDelegate里面实现这个方法并定义控制横屏的变量
/** 是否允许横屏属性*/
@property (nonatomic,assign)BOOL isAllowRotation;
/** 是否允许横屏方法*/
- (NSUInteger)application:(UIApplication *)application supportedInterfaceOrientationsForWindow:(nullableUIWindow *)window{if (self.isAllowRotation) {returnUIInterfaceOrientationMaskPortrait |UIInterfaceOrientationMaskLandscapeLeft |UIInterfaceOrientationMaskLandscapeRight;}returnUIInterfaceOrientationMaskPortrait;
}
2.给外部开控制是否横屏的接口(注意:需要横屏的页面消失时需要关闭横屏,否则其他页面也可以横屏了)
/** 允许横屏*/
- (void)setCanAllowRotation{self.isAllowRotation =YES;
}/** 禁止横屏*/
- (void)setCanNotAllowRotation{self.isAllowRotation =NO;
}
/** 支持横屏接口,需要在view消失时设置为不支持,否则其他页面也会支持横屏*/
- (void)setCanAllowRotation;
/** 不支持横屏接口*/
- (void)setCanNotAllowRotation;
3.然后可以定义成宏来方便调用
/** 获得appdelegate*/
#define APPDELEGATE (AppDelegate *)[[UIApplication sharedApplication] delegate]//支持横屏
#define CANNOTSCALE AppDelegate * appDelegate = APPDELEGATE;[appDelegate setCanNotAllowRotation];
//不支持横屏
#define CANSCALE AppDelegate * appDelegate = APPDELEGATE;[appDelegate setCanAllowRotation];