0

我正在使用 UISplitview 开发应用程序。

当我将设备从 Landscap 旋转到 Portrait 时,我设置了框架但未设置。在纵向模式下,只有详细视图。风景模式主视图和详细视图在那里。

那么我如何识别纵向模式下的旋转?

有什么方法吗?(比如在视图控制器中有 willAnimationRotationtoInterfaceorientation)

4

2 回答 2

1

据我了解,您希望能够在纵向视图中看到大师。

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 的文档。

于 2012-11-23T01:20:53.237 回答
0

使用 iPad 的 Master-Detail Application Template 在 Xcode 中创建一个新项目。这个项目模板创建了一个响应界面方向的 UISplitViewController。因此,它完整而准确地向您展示了如何做您要求做的事情。

于 2012-11-23T00:16:28.073 回答