如何在 iOS 5 中执行与用户输入无关的转场?

Posted

技术标签:

【中文标题】如何在 iOS 5 中执行与用户输入无关的转场?【英文标题】:How to perform a segue that is not related to user input in iOS 5? 【发布时间】:2011-12-19 08:47:19 【问题描述】:

考虑一个带有按钮的视图。我们可以从这个按钮拖动一个连接到其他视图控制器,在 IB 中创建一个 segue,我们很高兴。如果我需要在某些事件(例如网络进度)上执行的转场,并且与任何用户操作无关怎么办?现在我正在放置一个按钮,从这个按钮拖动一个segue,隐藏按钮,为一个segue分配一个标识符,然后在我执行这个segue的代码中的某个地方。但是,我认为放置一个虚拟按钮不是正确的方法。可能我在使用故事板时遗漏了一些东西,你能帮我理解吗?

【问题讨论】:

【参考方案1】:

通过 ctrl 从视图控制器拖动到下一个视图来创建你的 segue。 然后调用你的 segue,调用:

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

确保您在故事板中为您的 segue 命名。

【讨论】:

Ctrl-拖动从视图控制器到下一个视图是缺失的部分,谢谢!【参考方案2】:

您可以使用 performSegueWithIdentifier: 方法根据某些条件强制转换到新视图。当你调用它时,它也会自动调用 prepareForSegue: (通常在故事板即将转换到新视图时调用)。

我写了一篇关于控制推送视图here 的帖子,它应该涵盖了您所说的大部分内容。

【讨论】:

以上是关于如何在 iOS 5 中执行与用户输入无关的转场?的主要内容,如果未能解决你的问题,请参考以下文章

如何执行条件转场

APNs:单击通知时如何执行转场以转到特定的 ViewController

如何快速执行条件segue操作?

iOS 6,StroryBoards:在模态转场后更新主场景上的 UITextView

如何执行从视图容器到另一个外部视图的转场?

您如何让位置捕获器在覆盖转场之前运行?