【发布时间】:2015-09-18 04:32:03
【问题描述】:
我在 Xcode 7 中使用简单的 Master/Detail 拆分视图模板,并希望用户从具有主要类别的高级 Master VC 开始,然后选择一个并深入到单个项目 - 仍然在左侧- 然后当他们从第二个Master VC中选择左侧的一行时,在右侧显示详细VC。因此,我在故事板中添加了第二个主视图控制器(称为 MasterL2ViewController),它位于第一个主视图控制器和详细视图控制器之间。当应用程序最初以横向模式启动时,我看到左侧的主控制器和右侧的细节控制器。我在第一个 MasterViewController 的表格视图中填充了一些行,当用户点击一个时,它用第二个 Master VC 替换了右侧的细节控制器。该应用程序可以正常工作,没有错误,并且可以正常提取和显示数据,但是我希望第二个 Master VC 显示在左侧而不是右侧(详细信息)侧。它应该使用标准导航控制器返回主/第一个主 VC。希望我解释得很好……有人能告诉我如何让它把第二个 Master VC 推到左边而不是右边吗?谢谢。
故事板截图:
这是我的 prepareForSegue 代码。 MasterViewController 和 MasterL2ViewController 之间的 segue 称为 showLevel2。 (从那里到 Detail VC 是 showDetail。)
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
if segue.identifier == "showLevel2" {
if let indexPath = self.tableView.indexPathForSelectedRow {
print("indexPath=\(indexPath)")
let controller = (segue.destinationViewController as! UINavigationController).topViewController as! Level2ViewController
controller.mainIndexPath = indexPath
controller.navigationItem.leftBarButtonItem = self.splitViewController?.displayModeButtonItem()
controller.navigationItem.leftItemsSupplementBackButton = true
}
}
}
【问题讨论】:
-
我忘记了 Interface Builder 中的 Adaptive Segue 设置,所以将它从“显示详细信息(替换)”更改为“显示(推送)”,这让我有一部分的方式......现在它显示在左侧,但没有返回按钮可以返回到第一个 Master VC。有什么想法吗? i.imgur.com/4S8xc9T.png
标签: ios iphone xcode swift uisplitviewcontroller