我有一个viewcontroller及其视图,仅支持iPad中的横向。
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
if (interfaceOrientation == UIInterfaceOrientationPortrait)
return NO;
else
return YES;
}
但我有一个电影播放器的观点,只需要画像。所以在这个视图中我这样做:
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
if (interfaceOrientation == UIInterfaceOrientationPortrait)
return YES;
else
return NO;
}
我的问题是,如果我在第一个viewcontroller中将肖像设置为NO,那么我的第二个视图控制器将永远不会旋转为纵向。 secondviewcontroller被添加为第一个的子视图。如何使视图1不旋转为纵向,而使视图2不旋转为横向。这个应用程序是用于演示目的,所以我只是在寻找这个的技术答案。
答案 0 :(得分:2)
我不相信在添加为子视图时这是可能的。尝试将新视图推送到不可见的UINavigationController堆栈以实现您的目标。当从第一个视图转到第二个视图时,这将起作用,但是当第二个vc弹出时,让第一个视图将后退旋转到其原始位置非常棘手,因为苹果不希望你这样做这个。这是一个非常非常hacky的技巧,强制它回流行:
-(void)viewDidAppear:(BOOL)animated {
UIViewController *c = [[UIViewController alloc] init];
[self presentModalViewController:c animated:NO];
[self dismissModalViewControllerAnimated:NO];
[c release];
}
答案 1 :(得分:0)
当我在过去遇到这个问题时,我已经这样做了:
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
if(mayRotate){
return YES;
}else{
return NO;
}
}
我认为还有一点,但你应该有这个想法。