繁体   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