如何从一个 viewController 添加多个 segue
Posted
技术标签:
【中文标题】如何从一个 viewController 添加多个 segue【英文标题】:How to add multiple segues from one viewController 【发布时间】:2018-07-01 02:28:37 【问题描述】:我有一个 UI 视图控制器 (viewControllerOne),其中有一个表视图。我有一个从单元格中的按钮到另一个 viewController (viewControllerTwo) 的 segue。
这很好用。 现在,我有第三个视图控制器,并希望从视图控制器中的另一个按钮中获得一个segue。 如何让一个视图控制器的多个 segues 转到不同的视图控制器。
【问题讨论】:
【参考方案1】:首先 segue 应该在 VC 本身(不是单元格内的按钮)到destinationVC 之间,以便能够在prepareforSegue
中发送数据,因此从 VC1 的黄色图标拖动到 VC2 和 VC3 并给出一个分别像 toSecond 和 toThird 这样的标识符然后在代码中做
// change segue identifier if you want to third
self.performSegue(withIdentifier: "toSecond ", sender:nil)
【讨论】:
之后我使用 if else 语句为 segue 做准备,效果很好。 ?【参考方案2】:UITableViewCell
中的 Segue 应该以编程方式完成。使用didSelectCell at indexPath
方法。当它被调用时,你应该基于 indexPath 执行一个 segue。我个人建议使用一组结构来跟踪UITableViewCells
。例如:
struct tableViewCell
var cell: UITableViewCell
var segue: String
var cells: Array<Array<tableViewCell>> = [];
func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: IndexPath)
self.performSegue(withIdentifier: cells[indexPath.section][indexPath.row].segue);
抱歉,如果有任何拼写错误,此代码不是用 xcode 编写的。
【讨论】:
以上是关于如何从一个 viewController 添加多个 segue的主要内容,如果未能解决你的问题,请参考以下文章
如何从其他 ViewController 向 TableViewController 添加复选标记
使用多个 ViewController、Xcode 将代码连接到情节提要中的 UI
如何从 appDelegate 访问每个 ViewController?
如何从 XIB 文件访问 ViewController 中的 IBoutlet