我正在使用UISplitview开发应用程序。
当我将设备从Landscap旋转到纵向时我设置了框架,但未设置。 在纵向模式下,只有detailview存在。有景观模式主视图和详细视图。
那么如何识别纵向模式下的旋转?
是否有任何一种方法?(如在视图控制器中有willAnimationRotationtoInterfaceorientation)
答案 0 :(得分:1)
据我所知,您希望能够在纵向视图中看到主人。
UISplitViewController的设计专门以纵向模式隐藏主视图。
这里有两种方法可以解决这个问题。首先,将ViewController控制器声明为UISplitViewControllerDelegate。 (将控制器视为委托者?留在堆栈中的那个 - 让你弄清楚它是主人还是细节)。
然后你有几个委托方法来看看。
如果您想直接在以下委托方法中以纵向模式显示主人:
- (BOOL)splitViewController:(UISplitViewController *)svc shouldHideViewController:(UIViewController *)vc inOrientation:(UIInterfaceOrientation)orientation
你返回NO(也就是你不希望它隐藏视图控制器)
默认情况下,这不适用于横向,这就是为什么你会看到两个视图,而对于肖像是,这就是你没有看到主视图的原因。
说,更优雅的解决方案可能是隐藏主视图,然后在导航栏顶部放置一个按钮,点击后,您将在portait模式下显示主视图。在主视图外部单击时,将隐藏主控。
为此,您不使用上面的BOOL方法,而是实现其他两个委托方法:
– splitViewController:willHideViewController:withBarButtonItem:forPopoverController:
– splitViewController:willShowViewController:invalidatingBarButtonItem:
UISplitViewControllerDelegate的搜索文档。
答案 1 :(得分:0)
使用适用于iPad的Master-Detail应用程序模板在Xcode中创建一个新项目。此项目模板创建一个响应界面方向的UISplitViewController。因此,它完全准确地向您展示了如何做您要做的事情。