3

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

掌握

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

细节

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

4

1 回答 1

4

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

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

  2. 如果它被折叠(例如在 iPhone 上)通过详细导航控制器获取对主导航控制器的引用,并让它弹出到它的根视图控制器,在这种情况下是你的表视图控制器。

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

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

祝你好运!

于 2015-03-28T18:32:16.560 回答