【问题标题】:Swift 3 unwind segue from view controller C to A also executes code of view controller BSwift 3 unwind segue 从视图控制器 C 到 A 也执行视图控制器 B 的代码
【发布时间】:2017-04-01 12:19:03
【问题描述】:

ViewController A有作用:

@IBAction fund backToViewControllerA (segue: UIStoryboardSegue) {}

ViewController C:通过情节提要创建了展开转场(要退出的视图控制器,带有标识符和操作)

当从ABC 然后按下Cstart the unwind 中的按钮时,ViewController C 展开到A。到目前为止一切顺利...

问题:与此同时,在展开期间,BviewDidAppear() 也被执行。

问题:如何防止ViewController B的代码被执行?

【问题讨论】:

  • 提供更多代码
  • 正在运行什么代码?视图控制器 B 的 viewDidAppear() 中的代码?视图控制器 B 内展开的代码?
  • 视图控制器B的ViewWillAppear中的代码正在运行。

标签: swift unwind-segue


【解决方案1】:

仅供参考。我测试一个例子。 如果 A 在 UINavigationController 中。 A > B > C > A 会很好。 但是如果 A 只是一个 UIViewController。 B.viewDidAppear 的代码将被执行。

【讨论】:

  • 干得好!所以你有它。
  • 谢谢!所以我的问题是真实的。现在我通过首先检查变量值来阻止 B 中代码的执行。如果为零,则不执行。我在去 C 之前将其设置为零。
【解决方案2】:

你做错了什么。我刚刚创建了这个示例项目以表明情况并非如此。

https://github.com/Sethmr/TestUnwindSegue

下载它并查看视图控制器 B 中的 viewDidAppear() 永远不会被调用。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-06-14
    • 1970-01-01
    • 1970-01-01
    • 2015-02-16
    • 2015-02-13
    • 1970-01-01
    • 2014-07-17
    • 1970-01-01
    相关资源
    最近更新 更多