5

我已经为此苦苦挣扎了一段时间,但我无法找到解决方案:

我有一个 iOS 9 应用程序,它支持所有设备系列,使用尺寸等级并使用 Swift 2.0 进行编程。我正在使用 aUISplitViewController并且一切都按我的意愿运行,除了在折叠的环境中(例如在 iPhone 上)。

Master-ViewController 是UITableViewController在选择单元格时触发替换segue 的。在折叠的环境中,这意味着 detailViewcontroller 被推送到屏幕上。视觉上的UISplitViewController行为有点像UINavigationController. 但是,当我使用后退按钮或滑动手势关闭 detailViewController 时,它不会被释放,直到在 Master-ViewController 中触发新的替换 segue。

我认为这是 的一种功能UISplitViewController,因为它最初旨在将两个内容彼此相邻显示。尽管如此,在一个折叠的环境中,我希望我UISplitViewController的行为像一个简单的UINavigationController,它在弹出时释放先前推送的 detailviewController。

在弹出 detailViewController 后,我一直在尝试手动更改 splitViewController 的viewControllers属性:

 if let firstVc = self.splitViewController?.viewControllers.first {
        self.splitViewController?.viewControllers = [firstVc]
 }

但这无济于事。简单地将 detailViewController 替换为空的“Dummy”-ViewController 也不起作用,因为它会自动为过渡设置动画。玩弄UISplitViewControllerDelegate也没有帮助我......

有没有解决方案(可能很简单?:)),我太盲目了,看不到?

4

0 回答 0