iOS Xcode(swift) - 如何在展开segue后执行代码

Que*_*ner 6 xcode storyboard ios segue swift

我从场景1到场景2执行一个segue.然后我从场景2返回到场景1.我如何不仅将场景2中的数据传递到场景1,还在场景1中检测到我从场景2返回并执行代码在场景1?

在Android中,我使用startActivity和onActivityResult执行此操作.

Dan*_*hin 7

引入Bool状态就像其他答案的建议一样非常糟糕,必须尽可能避免,因为它会大大增加应用程序的复杂性.

在许多其他模式中,解决此类问题最简单的方法是将delegate对象传递给Controller2.

protocol Controller2Delegate {
  func controller2DidReturn()
}

class Controller1: Controller2Delegate {
  func controller2DidReturn() {
    // your code.
  }

  func prepareForSegue(...) {
    // get controller2 instance

    controller2.delegate = self
  }
}

class Controller2 {
  var delegate: Controller2Delegate!

  func done() {
    // dismiss viewcontroller

    delegate.controller2DidReturn()
  }
}
Run Code Online (Sandbox Code Playgroud)

国家是邪恶的,是软件漏洞的最大单一来源.