簡體   English   中英

viewDidLoad() 和 viewDidAppear() 只調用一次?

[英]viewDidLoad() and viewDidAppear() called only once?

這是我的 ViewController(對其他文件沒有更改):

import UIKit

class ViewController: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()
        print("hi from vdl")
    }

    override func viewDidAppear(_ animated: Bool) {
        print("hi from vda")
    }

}
  1. 我按下 xCode 中的三角形(“構建然后運行當前方案”)並得到 output:

來自vdl的你好
你好來自vda

  1. 現在我移動到主屏幕,從模擬器的左側滑動並滑動應用程序。 Output:

來自調試器的消息:由於信號 9 而終止

  1. 現在我從模擬器啟動應用程序(單擊主屏幕中的圖標)。 應用程序啟動但沒有 output。 為什么? 我需要從 xCode 重新運行應用程序以獲取 output。

當您在模擬器中關閉應用程序時,您會斷開與調試器的連接。

PS您沒有在viewDidAppear中調用super

viewDidLoad()viewDidAppear()在你進入 VC(ViewController) 時工作,比如 present、push、pop、dismiss。

當一個 VC 被呈現或推送到其他 VC 時, viewDidLoad()viewDidAppear()將起作用。當你彈出/關閉一個 VC 時,前一個 VC 會出現,這使得viewDidAppear()起作用。

但是移動到主屏幕不會對兩者產生影響。

如果您想知道應用程序何時進入后台,請使用AppDelegate.swift中的func applicationDidEnterBackground(_ application: UIApplication)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM