第二个Master-Detail方案在SplitViewController中无法正确加载

时间:2016-05-26 21:03:05

标签: ios swift uisplitviewcontroller

我在拆分视图控制器中有一个主从细节应用程序设置,基本上是Swift标准代码。使用最初的主 - 细节方案,它可以按预期工作。

我想在拆分视图控制器的左右窗格中加载第二个Master,并使用它的第二个细节。有一个主要的例外,它按预期工作。例外情况是第二个详细信息视图仅覆盖左窗格中的第二个主数据。第二个细节未加载到右侧窗格中。

以图形方式解决问题。第一个主要细节方案: enter image description here

然后当第二个主人启动时: enter image description here

然后在第二个主控中点击一个单元格: enter image description here

我使用简单的故事板segue从MVC1按钮加载第二个master,尽管我已经以编程方式作为委托完成了它。没有任何东西可以显示左侧的主人2和右侧的详细信息2。在所有情况下,我都尝试将segue作为Show和Show Detail。我无法辨别应用行为的差异。

enter image description here

对于从MVC2到DVC2的segue:

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {

    if segue.identifier == "showKeywordDetail" {

        if let indexPath = self.tableView.indexPathForSelectedRow {

            let object = self.fetchedResultsController.objectAtIndexPath(indexPath) as! Keyword
            let controller = segue.destinationViewController as! KeywordDetailViewController

            controller.detailItem = object
            //controller.navigationItem.leftBarButtonItem = self.splitViewController?.displayModeButtonItem()
            controller.navigationItem.leftItemsSupplementBackButton = false
            controller.sentBy = "showKeywordDetail"

        }//if let indexPath

    } else if segue.identifier == "addKeyword" {

//为其他案例提供更多代码

}

任何指导都将不胜感激。

1 个答案:

答案 0 :(得分:0)

这个解决方案的关键似乎是创建一个单独的“非连接”主细节方案。

在原始母版上,放置一个带有操作的按钮:

@IBAction func doCodeKeywordPush(sender : AnyObject) {
 self.navigationController!.pushViewController(self.storyboard!.instantiateViewControllerWithIdentifier("KeywordTableViewController") as! UITableViewController, animated: true)

}//doCodeKeywordPush

然后在故事板中设置第二个主 - 详细方案。将第二个主视图控制器嵌入导航控制器中。从第二个主tableViewCell到第二个详细视图控制器创建一个segue。按钮和第二组之间应该没有segue或连接。

最后,将第二个主节点配置为第二个细节segue,与其他任何设置一样。