簡體   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