如何从一个 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 并给出一个分别像 toSecondtoThird 这样的标识符然后在代码中做

// 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

如何从反应原生页面快速打开现有的 ViewController?

从 NavigationController 后退按钮返回多个 ViewController