私は階層に3つ持っていUIViewControllers
ますUINavigationController
。
最後の 1 つだけでランドスケープ モードを有効にするにはどうすればよいですか? (または、1 番目と 2 番目のブロックの風景)。
(1st > 2nd > 3rd を押してそれぞれ開きます)
これらのメソッドで UINavigationController をオーバーライドしようとしました:
-(NSUInteger)supportedInterfaceOrientations {
UIViewController *top = self.topViewController;
if ([top isMemberOfClass:[PictureViewController class]]) {
return UIInterfaceOrientationPortrait | UIInterfaceOrientationLandscapeLeft | UIInterfaceOrientationLandscapeRight;
} else {
return UIInterfaceOrientationPortrait;
}
}
-(BOOL)shouldAutorotate {
UIViewController *top = (UIViewController*) self.topViewController;
if ([top isMemberOfClass:[PictureViewController class]]) {
return YES;
} else {
return NO;
}
}
PictureViewController
は3番目UIViewController
です。それをshouldAutorotate
返して返すYES
supportedInterfaceOrientations
UIInterfaceOrientationPortrait | UIInterfaceOrientationLandscapeLeft | UIInterfaceOrientationLandscapeRight;
ただし、ランドスケープは有効になっていません。