【问题标题】:Swift create a unwind segue programmaticallySwift 以编程方式创建一个 unwind segue
【发布时间】:2020-06-16 13:44:52
【问题描述】:

按照here 的说明,我正在使用情节提要创建一个展开转场。

但我想做的是使用 swift 以编程方式创建展开转场,

这背后的原因是我想为我的所有 UIViewController 创建一个默认展开 segue。

【问题讨论】:

标签: swift uiviewcontroller segue unwind-segue


【解决方案1】:

你不能。 segue 是故事板中的东西。您的代码(以编程方式)无法查看情节提要并对其进行更改。

相反,您可以以编程方式执行 unwind segue 所做的操作,例如弹回某个视图控制器。

但是“返回”到某个视图控制器的一般问题,无论涉及什么(dismiss 和 pop 的某种组合等)是一个非常困难和常见的问题。确实非常烦人的是,尽管故事板unwind segue“知道”如何做到这一点,但没有任何方法可以让 在代码中做到这一点。我只能建议向 Apple 提交错误报告。

【讨论】:

    【解决方案2】:

    如果你想回到根视图控制器,你可以像这样在navigationController 上使用popToRootViewControllerAnimated

    navigationController?.popToRootViewController(animated: true)
    

    或者,如果您希望返回到特定的视图控制器,请使用:

    navigationController?.popToViewController(secondViewController, animated: true)
    

    【讨论】:

    • 不,我不是要回到根视图控制器,我的预期输出是为 UIViewController 创建一个默认展开 segue,以便它可以展开到特定的视图控制器,即使它不在导航控制器
    • 正如@matt 所解释的,segue 与故事板相关,如果您希望返回导航控制器中的控制器,那么我也添加了该方法。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-29
    • 1970-01-01
    • 2015-05-01
    • 2018-09-10
    相关资源
    最近更新 更多