繁体   English   中英

在关闭视图时执行 function Controller

[英]Perform function on Dismiss of a View Controller

我在视图 controller 的viewDidAppear function 上调用GET(方法) API。 我在我的第一个视图 controller 上使用导航 controller呈现一个新视图 controller。 在第二个视图 controller 我正在调用Post Method的 API 以在我的上一个屏幕Get 方法 API中添加另一个条目。 但是当我关闭第二个视图 Controller 时,获取 API 数据保持不变,当我再次运行代码时,数据在第一个视图 controller 上更新。 有人可以告诉我如何检查第一个视图 controller 我的第二个视图 controller 被驳回,以便我可以在那里调用 API。

我得到了解决方案。 通过在viewDidAppear()viewWIllAppear()上调用 API 不起作用。 这将通过使用 swift 闭包来完成。

下面是代码:

    class 1stViewController: UIViewController {

      @IBAction func buttonTapped(_ sender: UIButton) {
           guard let secondViewController = self.storyboard?.instantiateViewController(withIdentifier: "SecondViewController") as? SecondViewController else { return }
        secondController.callbackClosure = { [weak self] in
            print("call API")
        }
        self.navigationController?.pushViewController(secondController, animated: true)
       }
}

在第二个视图 Controller:

class SecondViewController: UIViewController {

      var callbackClosure: ((Void) -> Void)?

      override func viewWillDisappear(_ animated: Bool) {
         callbackClosure?()
          }
 }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM