iOS8 UISplitViewController:如何在紧凑宽度窗口中切换到主视图?

时间:2014-12-18 06:13:21

标签: ios8 uisplitviewcontroller size-classes popviewcontrolleranimated

我的根视图控制器是一个UISplitViewController,它有一个UITableViewController作为主视图控制器。在iPhone(紧凑宽度)上,它看起来像UINavigationController。

master

点击一个单元格以显示详细视图控制器

detail

点击垃圾桶按钮会删除当前的音符。我的问题是如何在那之后回到主视图?由于它是一个UISplitViewController,它不能像UINavigationController一样弹出当前的视图控制器。

1 个答案:

答案 0 :(得分:4)

我有类似的问题,终于找到了解决方案。据我了解,当处于紧凑宽度时,细节导航控制器成为主导航控制器的视图控制器。所以你要做的就是:

  1. 通过检查拆分视图控制器的折叠属性来确定是否只存在一个视图。如果它没有折叠(例如在iPad上),除了详细视图之外,您还在显示表格视图。

  2. 如果它已折叠(例如在iPhone上),则通过详细导航控制器获取对主导航控制器的引用,并将其弹出到其根视图控制器,在本例中为您的表视图控制器。

  3. 这是我在详细视图控制器中使用的代码。在您的情况下,我认为您只需要将此代码添加到详细视图控制器中的按钮操作:

    if splitViewController!.collapsed {
        let detailNavController = parentViewController as UINavigationController!
        let masterNavController = detailNavController.parentViewController as UINavigationController!
        masterNavController.popToRootViewControllerAnimated(true)
    }
    
    祝你好运!