我对Swift还很陌生,并且在做一些个人项目来帮助我理解事情。MasterViewController BarButton在显示详细信息后失踪Segue被触发
现在,我使用Master-Detail应用程序作为模板。在MasterViewController上,它是一个动态的TableViewController。
我想要实现的是,当我点击任何单元格时,MasterViewController将显示另一个导航列表(我已经设法使用Push segue进行设置),并且在DetailViewController上,而不是调用DetailViewController,它目前正在调用ContentsViewController,它是一个带有TabBar的ViewController(我也已经使用Ctrl单击了Cell并使用Accessory Action - > Show)。
源代码片段触发SEGUE
MasterViewController.swift
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
if segue.identifier == "showContentDetailSegue" {
if let indexPath = self.tableView.indexPathForSelectedRow() {
performSegueWithIdentifier ("ContentDetailSegue", sender: self)
}
}
}
眼下,ContentsViewController已经显示没有问题。但是,左上角的BarButton不再具有切换MasterViewController的主BarButton。
我也试过self.presentViewController,但它将取代整个屏幕,这不是我心目中的,因为我想保持分割视图完好无损。
我哪里错了?任何帮助表示赞赏。
通常情况下,相应的快捷文件下列代码,你不应该从prepareForSegue()调用“performSegueWithIdentifier”。后一个函数被调用来设置目标控制器上的一些数据。当它被称为一个segue已经在进行中。因此,它看起来像你同时开始两个赛段,这可能是什么情况下的问题..你可以重写代码,以避免使用prepareForSegue? – Alexey
那我该怎么去做呢? – Gino
如果你与我分享你的整个项目,然后我会看看。 – Alexey