在视图控制器关闭时执行函数

问题描述 投票:0回答:1

我正在视图控制器的 viewDidAppear 函数上调用 GET(方法)API。我在我的第一个视图控制器上使用导航控制器展示了一个新的视图控制器。在第二个视图控制器上,我调用 Post Method 的 API,以将另一个条目添加到我的上一个屏幕 Get method API。但是,当我关闭第二个视图控制器时,获取 API 数据保持不变,当我再次运行代码时,数据已在第一个视图控制器上更新。有人可以告诉我如何检查第一个视图控制器我的第二个视图控制器是否已关闭,以便我可以在那里调用 API。

swift viewdidload presentviewcontroller viewdidappear dismissviewcontroller
1个回答
2
投票

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

以下是代码:

    class FirstViewController: 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)
       }
}

在第二个视图控制器上:

class SecondViewController: UIViewController {

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

      override func viewWillDisappear(_ animated: Bool) {
         callbackClosure?()
          }
 }
© www.soinside.com 2019 - 2024. All rights reserved.