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 Stack
的SecondViewController
这样FirstViewController
的ViewDidLoad
永远不会打电话因为FirstViewController
已经加载到内存中。在这种情况下 ViewDidAppear
和 ViewWillAppear
将执行。因为只要视图要出现在屏幕上,这些方法就会始终调用。
2. 您在 SecondViewController
上创建了 FirstViewController
的另一个实例,并在 Navigation Stack
上推送了 FirstViewController
的实例。这样,将添加一个新的 FirstViewController
实例,并自动调用 ViewDidLoad
。并且会自动创建 FirstViewController
和 SecondViewController
的循环。
希望您现在明白为什么 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 Stack
的SecondViewController
这样FirstViewController
的ViewDidLoad
永远不会打电话因为FirstViewController
已经加载到内存中。在这种情况下 ViewDidAppear
和 ViewWillAppear
将执行。因为只要视图要出现在屏幕上,这些方法就会始终调用。
2. 您在 SecondViewController
上创建了 FirstViewController
的另一个实例,并在 Navigation Stack
上推送了 FirstViewController
的实例。这样,将添加一个新的 FirstViewController
实例,并自动调用 ViewDidLoad
。并且会自动创建 FirstViewController
和 SecondViewController
的循环。
希望您现在明白为什么 ViewDidLoad
方法从未调用过您。