IOS中的viewDidLoad vs ViewWillAppear

Swi*_*fty 3 uiviewcontroller ios swift

请帮我解决一下这个.我创建了一个带有两个视图的简单项目,如图所示.我已经为我的故事板和快速文件附加了图像.所以,我读到在将视图加载到内存时,viewdidload只会被执行一次.但是,当我从第二个视图转换到第一个视图时,viewdidload再次执行,viewdidload方法中的print语句也是如此.

有人请解释我这个. 在此输入图像描述在此输入图像描述

Jan*_*aya 8

viewDidLoad对于应用程序,不会调用一次.当视图保存内存并加载时,会为该viewController调用一次.

因此,当您推送到viewController的时间很多时,它会多次调用 viewDidLoad

  • viewDidLoad() - 在创建和加载视图控制器的内容视图(其视图层次结构的顶部)时调用

  • viewWillAppear() - 适用于在视图可见之前始终要执行的任何操作.

有关此内容的详细信息,请访问以下链接:https://developer.apple.com/library/content/referencelibrary/GettingStarted/DevelopiOSAppsSwift/Lesson4.html

因此,如果视图已经在内存中(就像你的情况一样),则无需再次推送,只需要通过此代码弹出即可

self.navigationController?.popViewControllerAnimated(true)
Run Code Online (Sandbox Code Playgroud)