将 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 将数据从一个视图控制器传递到另一个视图控制器
在spring boot中将控制从一个控制器重定向到另一个控制器