请帮我解决这个问题。如图所示,我创建了一个具有两个 View 的简单项目。我附上了 Storyboard和 swift 文件的图像。所以,我读到 viewdidload 在将 View 加载到内存中时只会执行一次。但是,当我从第二个 View 转换到第一个 View 时,viewdidload 再次执行,viewdidload 方法中的打印语句也是如此。
最佳答案
viewDidLoad
不会为应用程序调用一次。当 View 保存内存并加载时,它会为该 viewController 调用一次。
所以你推送到 viewController 的次数越多,它就会调用 viewDidLoad
viewDidLoad()
— 当 View Controller 的内容 View (顶部 它的 View 层次结构)被创建和加载viewWillAppear()
— 用于您希望始终执行的任何操作 在 View 变得可见之前发生。
有关此内容的更多信息,请查看链接:https://developer.apple.com/library/content/referencelibrary/GettingStarted/DevelopiOSAppsSwift/Lesson4.html
所以如果 View 已经在内存中(像你的情况),那么不需要再次推送,只需要通过这段代码弹出
self.navigationController?.popViewControllerAnimated(true)
关于ios - IOS 中的 viewDidLoad 与 ViewWillAppear,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40211547/