【问题标题】:UIsplitview Not Respond RotationUIsplitview 不响应旋转
【发布时间】:2012-11-23 09:20:53
【问题描述】:

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

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

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

有什么方法吗?(比如 In view controller 有 willAnimationRotationtoInterfaceorientation)

【问题讨论】:

    标签: iphone uisplitviewcontroller uiinterfaceorientation ipad


    【解决方案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 的文档。

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多