我现在已经在这方面苦苦挣扎了一段时间,但我无法找到解决方案:
我有一个支持所有设备系列的iOS 9应用程序,使用大小类并使用Swift 2.0进行编程。
我使用的是UISplitViewController
,除了折叠环境(例如在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]
}
但这没有用。简单地用一个空的" Dummy" -ViewController替换detailViewController既不起作用,因为它会自动动画转换。
玩UISplitViewControllerDelegate
并没有帮助我......
有没有解决方案(也许简单?:)),我太盲目了?