将 segue 从一个视图控制器重定向到另一个视图控制器

Posted

技术标签:

【中文标题】将 segue 从一个视图控制器重定向到另一个视图控制器【英文标题】:Redirect segue from one view controller to a different one 【发布时间】:2015-09-04 07:24:57 【问题描述】:

对于这个看似基本的问题,我找不到答案。假设我有一个带有两个视图控制器 A 和 B 以及从一个到另一个的 segue 转换的故事板。现在,我创建了一个不同的视图控制器 C,现在想将现有的 segue 从 A 重定向到 C。

我 Ctrl 拖动它,命令拖动它等等。它似乎不起作用。在真正的应用程序中,我有太多的转场来尝试从头开始重新创建它们。有没有更简单的方法?

这个问题不是被标记的重复,因为我试图重用现有的 segue,而不是直接到不同的控制器。

谢谢!

【问题讨论】:

Redirect to another view controller的可能重复 【参考方案1】:

选项 1,使用 XML 文件

首先,右键单击 Storyboard 文件。然后选择 open as Source 代码

搜索segue,然后更改destination id

  <segue destination="Esd-4c-JQq" kind="show" id="Jnu-RW-1O5"/>

选项 2,使用界面生成器

首先,选择segue源ViewController

其次,创建一个相同的segue(Control+drag),如图所示

现在,你有两个相同的 segue,

你只需要删除旧的

【讨论】:

有没有办法改变segue的来源?例如,我错误地创建了从整个视图控制器到另一个而不是作为源的 TableViewCell。我可以在不删除的情况下将其源从主视图更改为 TableViewCell 吗?【参考方案2】:

您可以将 Segue 从 ViewController 顶部的 ViewController 图标拖动到其他控制器。

只需通过单击情节提要上的 segue 指针然后打开属性检查器来为 segue 提供标识符,最后您只需执行该代码即可。

案例 1:从 A 推送 Segue 到 B

[self performSegueWithIdentifier:@"PushB" sender:self]; //PushB is segue identifier

案例 2:将 Segue 从 A 推送到 C

[self performSegueWithIdentifier:@"PushC" sender:self];

注意:在执行performSegueWithIdentifier 之前,您必须将导航控制器作为情节提要的初始点。

希望这会有所帮助。

【讨论】:

【参考方案3】:

从 A 到 B 删除之前的一个,然后从 A 到 C 重新创建一个新的。

希望对你有帮助。

【讨论】:

这就是我想要避免的。我有太多现有的 segues 来回连接。

以上是关于将 segue 从一个视图控制器重定向到另一个视图控制器的主要内容,如果未能解决你的问题,请参考以下文章

尝试使用 segue 将数据从一个视图控制器传递到另一个视图控制器

如何在 IOS 应用程序中从视图控制器重定向回主故事板

将数据从视图控制器传递到另一个视图控制器

在spring boot中将控制从一个控制器重定向到另一个控制器

FSCalendar - 从选定的日期创建 segue 到另一个视图控制器

Ionic Framework:无法从我的控制器重定向到另一个页面?