我有两个ViewControllers。当我按下FirstViewController上的一个按钮时,SecondViewController就会出现。当我按下SecondViewController上的一个按钮时,FirstViewController再次出现。问题是,FirstViewController上的视图不会再次加载。ViewDidLoad循环不会再次加载。我想要创建一个循环,它在每次FirstViewController出现时检查一个变量。
发布于 2017-10-02 07:47:53
将该代码放入viewDidAppear或viewWillAppear中。
发布于 2017-10-02 07:48:42
只有在视图第一次加载时才调用viewDidLoad。听起来,您正在寻找viewDidAppear (或viewWillAppear)方法,每次视图刚刚被(viewDidAppear)或即将出现(viewWillAppear)时都会调用该方法。
所以你可能在寻找这两种方法中的一种。您可能需要查看此页上的图表以获得更多信息。
发布于 2017-10-02 09:28:19
ViewDidLoad方法在向Navgation Stack中添加UIViewController实例时调用。
我以为你已经知道Navigation Stack**.**的了
当您从FirstViewController中显示SecondViewController时,意味着您从两种可能的方式中做了一件事
1.用这种方式从Navigation Stack中获取SecondViewController,ViewDidLoad of FirstViewController将永远不会调用,因为FirstViewController已经加载到内存中了。在本例中,ViewDidAppear和ViewWillAppear将执行。因为每当视图出现在屏幕上时,这些方法都会调用。
2.您在SecondViewController上创建了FirstViewController的另一个实例,并在Navigation Stack上推送FirstViewController的实例。这样,将添加一个新的FirstViewController实例,并自动调用ViewDidLoad。并且将自动创建一个FirstViewController和的环。
希望您现在理解为什么ViewDidLoad方法从未调用过您。
https://stackoverflow.com/questions/46521391
复制相似问题