我在UISplitViewController
上有轮换问题。在我的例子中,在splitViewController
上调用当前模态(此splitViewController是窗口的根视图)后显示另一个视图。旋转该modalView时,splitView旋转不正确。
splitView看起来像是旋转了,但DetailViewController
仍然像在肖像上一样,而RootViewController
根本没有显示。它仍然像肖像模式。看来splitView是旋转的,而不是基础视图(DetailViewController
和RootViewController
)。
我尝试在modalView上实现willRotateToInterfaceOrientation
,并使用委托调用splitView的willRotateToInterfaceOrientation
方法。
这是我在modalView中实现的:
- (void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration {
[super willRotateToInterfaceOrientation:toInterfaceOrientation duration:duration];
MacProjectAppDelegate *delegate = [[UIApplication sharedApplication] delegate];
[delegate.splitViewController willRotateToInterfaceOrientation:toInterfaceOrientation duration:duration];
}
结果是,DetailViewController
行为正确,但不是RootViewController
。它隐藏起来。在用户手动旋转到纵向并返回横向后,它将重新出现。但显然用户并不想这样。
这是我在呈现modalView时所做的:
ModalViewController *modalView = [[ModalViewController alloc] init];
MacProjectAppDelegate *delegate = (MacProjectAppDelegate *)[[UIApplication sharedApplication] delegate];
[delegate.splitViewController presentModalViewController:modalView animated:YES];
[modalView release];
在这种情况下,有没有办法显示RootViewController
?或者我的做法是错的?
编辑:
似乎所有视图都没有按照modalView旋转。 RootViewController和DetailViewController都没有旋转(两个ViewController都没有调用the didRotateFromOrientation
)。所以现在我假设它没有按照device / modalView旋转。
答案 0 :(得分:1)
行。我的问题已经解决了。 我所做的就是我对舒拉科夫的评论所写的评论。
我获得appDelegate并获取splitViewController以调用willRotateToInterfaceOrientation。
MacProjectAppDelegate *delegate = [[UIApplication sharedApplication] delegate];
[delegate.splitViewController willRotateToInterfaceOrientation:toInterfaceOrientation duration:duration];
我做了两次,因为其中只有一个似乎不起作用(我不知道为什么)。一个采用modalViewController
的{{1}}方法,一个采用willRotateToInterfaceOrientation
的{{1}}方法。
要删除RootViewController
上的导航器/弹出窗口按钮,我只需通过willAppear
的{{1}}方法调用DetailViewController
即可使该按钮无效。这就是这个特定方法的样子(对于invalidateRootPopoverButtonItem
的第一个,我只是将RootViewController
命令传递给willAppear
):
modalViewController
希望这可以解释我如何克服我的问题并帮助那些遇到与我相同问题的人。