Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Xcode Swift ViewDidLoad_Swift_Xcode_Viewdidload - Fatal编程技术网

Xcode Swift ViewDidLoad

Xcode Swift ViewDidLoad,swift,xcode,viewdidload,Swift,Xcode,Viewdidload,我有两个视图控制器。当我按下第一个ViewController上的按钮时,第二个ViewController显示。当我按下第二个ViewController上的按钮时,第一个ViewController再次显示。问题是,FirstViewController上的视图不会再次加载。ViewDidLoad循环不会再次加载。 我想创建一个循环,每次FirstViewController出现时都会检查一个变量。将该代码放入或。viewDidLoad仅在视图首次加载时调用。听起来您正在寻找viewdide

我有两个视图控制器。当我按下第一个ViewController上的按钮时,第二个ViewController显示。当我按下第二个ViewController上的按钮时,第一个ViewController再次显示。问题是,FirstViewController上的视图不会再次加载。ViewDidLoad循环不会再次加载。
我想创建一个循环,每次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(:)
是您想要的范围;如果您对视图控制器的生命周期感兴趣(您是!),请花时间阅读。