Xcode Swift ViewDidLoad
我有两个视图控制器。当我按下第一个ViewController上的按钮时,第二个ViewController显示。当我按下第二个ViewController上的按钮时,第一个ViewController再次显示。问题是,FirstViewController上的视图不会再次加载。ViewDidLoad循环不会再次加载。Xcode Swift ViewDidLoad,swift,xcode,viewdidload,Swift,Xcode,Viewdidload,我有两个视图控制器。当我按下第一个ViewController上的按钮时,第二个ViewController显示。当我按下第二个ViewController上的按钮时,第一个ViewController再次显示。问题是,FirstViewController上的视图不会再次加载。ViewDidLoad循环不会再次加载。 我想创建一个循环,每次FirstViewController出现时都会检查一个变量。将该代码放入或。viewDidLoad仅在视图首次加载时调用。听起来您正在寻找viewdide
我想创建一个循环,每次FirstViewController出现时都会检查一个变量。将该代码放入或。
viewDidLoad仅在视图首次加载时调用。听起来您正在寻找viewdideappear
(或viewWillAppear
)方法,该方法在每次视图刚刚出现(viewdideappear
)或即将出现(viewWillAppear
)时调用
所以你可能正在寻找这两种方法中的任何一种。在将UIViewController
的实例添加到Navgation堆栈中时,您可能需要查看上的图表以了解更多信息
我假设您已经知道导航堆栈
当您从SecondViewController
显示FirstViewController
时,这意味着您从两种可能的方式做了一件事
1。您从导航堆栈SecondViewController
以这种方式FirstViewController
的ViewDidLoad
将永远不会调用,因为FirstViewController
已加载到内存中。在这种情况下,将执行viewdide
和viewwillbeen
。因为每当视图出现在屏幕上时,这些方法都会调用
2.您在SecondViewController
上创建了另一个FirstViewController
实例,并在导航堆栈上推送FirstViewController
。这样将添加一个新的FirstViewController
实例,并自动调用ViewDidLoad
。将自动创建一个FirstViewController
和SecondViewController
循环
希望您现在能够理解为什么ViewDidLoad
方法从未为您调用。可能重复的-viewwillbeen(:)
是您想要的范围;如果您对视图控制器的生命周期感兴趣(您是!),请花时间阅读。