在父视图控制器里面写如下代码
-(void)setViewOrientation:(UIInterfaceOrientation )orientation { if ([[UIDevice currentDevice] respondsToSelector:@selector(setOrientation:)]) { [[UIDevice currentDevice] performSelector:@selector(setOrientation:) withObject:(id)orientation]; } [UIViewController attemptRotationToDeviceOrientation];//这句是关键 } -(NSUInteger)supportedInterfaceOrientations { return UIInterfaceOrientationMaskPortrait; } -(BOOL)shouldAutorotate { return YES; } - (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation { return toInterfaceOrientation==UIInterfaceOrientationPortrait; }
在子视图控制器的加入,这里子视图控制器要横屏
- (void)viewWillAppear:(BOOL)animated { [super viewWillAppear :YES]; [self setViewOrientation:UIInterfaceOrientationLandscapeRight]; }
//重写下面子类的方法
- (NSUInteger) supportedInterfaceOrientations{
returnUIInterfaceOrientationMaskLandscapeRight;
}
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation NS_DEPRECATED_IOS(2_0, 6_0){
return toInterfaceOrientation == UIInterfaceOrientationLandscapeRight;
}