Xcode Swift ViewDidLoad

Xcode Swift ViewDidLoad

我有两个 ViewController。当我按下 FirstViewController 上的按钮时,SecondViewController 出现。当我按下 SecondViewController 上的按钮时,FirstViewController 再次出现。问题是 FirstViewController 上的视图不会再次加载。 ViewDidLoad 循环不会再次加载。 我想创建一个循环,每次出现 FirstViewController 时都会检查一个变量。

将该代码放入 viewDidAppear or viewWillAppear

viewDidLoad 仅在视图首次加载时调用。听起来您正在寻找 viewDidAppear(或 viewWillAppear)方法,每次视图刚刚出现(viewDidAppear)或即将出现(viewWillAppear)时都会调用该方法。

所以您可能正在寻找其中一种方法。您可能想查看 this page 上的图表以获取更多信息

当您将 UIViewController 的实例添加到 Navgation Stack.

时,

ViewDidLoad 方法调用

我假设你已经知道 Navigation Stack

当你从 SecondViewController 显示 FirstViewController 时,这意味着你从两种可能的方式做了一件事情

1.Navigation StackSecondViewController这样FirstViewControllerViewDidLoad永远不会打电话因为FirstViewController 已经加载到内存中。在这种情况下 ViewDidAppearViewWillAppear 将执行。因为只要视图要出现在屏幕上,这些方法就会始终调用。

2. 您在 SecondViewController 上创建了 FirstViewController 的另一个实例,并在 Navigation Stack 上推送了 FirstViewController 的实例。这样,将添加一个新的 FirstViewController 实例,并自动调用 ViewDidLoad。并且会自动创建 FirstViewControllerSecondViewController 的循环。

希望您现在明白为什么 ViewDidLoad 方法从未调用过您。