在什么情况下viewWillAppear被调用?
正常答案是,当视图出现时。在什么情况下viewWillAppear被调用?
说我有一个UIViewController。我们称之为vc。
说我想vc来控制一个视图。
所以我做vc.view = controlledView;
我希望每当controlledView即将出现时,[vc viewWillAppear]将被调用。
它没有。
怎么了?
而且viewDidLoad中也没有叫我做
[vc view]
技术上甚至后,vc.view已经被加载
如果您在其他View实例中调用viewWillAppear,那么它将永远不会调用。
viewWill每次进入该视图时都会调用一个方法,如果您离开它,然后再来或回来,它会再次调用。
请务必使用'超级'关键字。在WillAppear方法中使用 [super viewWillAppear]。
好的答案Mohit bhai –
viewWillAppear
总是在您的视图即将出现时调用,如名称本身所示。
如果视图控制器由弹出窗口中的视图控制器呈现,则在呈现的控制器关闭后,不会在呈现视图控制器上调用此方法。视图控制器
生命周期是这样的:
当视图控制器被分配和加载,的loadView被称为然后viewDidLoad中被调用。您可以看到图像中的整个流程。
请参阅本图片
注:此图片是从this answer
不,它不是。通常情况下。但是,如果将控制器视图更改为其他内容,则不会调用它。控制器不会观察视图。 –
采取了正确的答案如下。
您是否将子viewController添加为父子视图控制器的子级?
viewWillAppear只会被调用父视图控制器(顶部屏幕视图控制器),除非其他viewController被声明为子。
然后parentViewController会传递viewWillAppear事件。
http://*.com/questions/7386333/guidelines-for-viewwillappear-viewdidappear-viewwilldisappear-viewdiddisappea – Balu
如何加载该视图? – DivineDesert
即使在我调用[vc view]之后,也不会调用viewDidLoad –