我正在使用 UISplitview 开发应用程序。
当我将设备从 Landscap 旋转到 Portrait 时,我设置了框架但未设置。在纵向模式下,只有详细视图。风景模式主视图和详细视图在那里。
那么我如何识别纵向模式下的旋转?
有什么方法吗?(比如在视图控制器中有 willAnimationRotationtoInterfaceorientation)
我正在使用 UISplitview 开发应用程序。
当我将设备从 Landscap 旋转到 Portrait 时,我设置了框架但未设置。在纵向模式下,只有详细视图。风景模式主视图和详细视图在那里。
那么我如何识别纵向模式下的旋转?
有什么方法吗?(比如在视图控制器中有 willAnimationRotationtoInterfaceorientation)
据我了解,您希望能够在纵向视图中看到大师。
UISplitViewController 的设计专门隐藏了纵向模式的主视图。
有两种方法可以解决这里的情况。首先,您将 ViewController 控制器声明为 UISplitViewControllerDelegate。(哪个视图控制器作为委托?留在堆栈中的那个 - 让您确定它是主控还是细节)。
然后,您可以查看一些委托方法。
如果你想直接在下面的委托方法中以纵向模式显示主人:
- (BOOL)splitViewController:(UISplitViewController *)svc shouldHideViewController:(UIViewController *)vc inOrientation:(UIInterfaceOrientation)orientation
你返回 NO(也就是你不希望它隐藏视图控制器)
默认情况下,横向是 no,这就是您看到两个视图的原因,而纵向是 yes,这就是您看不到主视图的原因。
话虽如此,更优雅的解决方案可能是隐藏主视图,然后在导航栏顶部放置一个按钮,单击该按钮后,您将看到主视图以纵向模式显示。在主视图之外单击时,主视图将被隐藏。
为此,您不要使用上面的 BOOL 方法,而是实现另外两个委托方法:
– splitViewController:willHideViewController:withBarButtonItem:forPopoverController:
– splitViewController:willShowViewController:invalidatingBarButtonItem:
搜索 UISplitViewControllerDelegate 的文档。
使用 iPad 的 Master-Detail Application Template 在 Xcode 中创建一个新项目。这个项目模板创建了一个响应界面方向的 UISplitViewController。因此,它完整而准确地向您展示了如何做您要求做的事情。