viewWillAppear调用的顺序

时间:2018-01-29 10:55:21

标签: ios

如果我以任何顺序呈现和解散多个视图控制器,我可以确定iOS以正确的顺序(即出现顺序)调用viewWillAppear方法吗?

我在文档中找不到关于此的任何具体信息。

2 个答案:

答案 0 :(得分:0)

我认为您需要了解docs中的viewWillAppear

  

在视图控制器的视图即将添加到视图层次结构之前以及在配置任何动画以显示视图之前调用此方法。您可以覆盖此方法以执行与显示视图相关的自定义任务。例如,您可以使用此方法更改状态栏的方向或样式,以与所显示视图的方向或样式进行协调。如果重写此方法,则必须在实现中的某个时刻调用super。

只有想到的可能不是很清楚的事情是,当呈现的视图控制器将被解除时,在呈现视图控制器上调用此回调(因此呈现视图控制器将再次出现)。

因此,如果A是根,则A.viewWillAppear将在屏幕上显示之前被调用。然后,如果A显示B,则在B可见之前,B.viewWillAppear将被调用。当B被解雇时,A.viewWillAppear会再次被调用,因为它的视图会再次出现。

答案 1 :(得分:0)

viewWillAppear()在第一次显示视图时调用,并且在再次显示视图时也会调用它,因此可以在视图控制器对象的生命周期内多次调用它。

当用户点击后退按钮,关闭对话框或在标签栏控制器中选择视图控制器选项卡或其他各种原因导致视图即将出现时,会调用它。确保在实施中的某个时刻致电super.viewWillAppear()