开发者

ViewDidAppear/ViewWillAppear not being called

开发者 https://www.devze.com 2023-01-20 03:43 出处:网络
I have a ViewController that adds to other subviews which have subclassed uiviewControllers so Its like this:

I have a ViewController that adds to other subviews which have subclassed uiviewControllers

so Its like this:

mainViewController
       |
  v---------v
subVC1   subVC2

And neither subVC1 or subVC2 have the viewDidAppear/viewWillAppear fired on them? The main view con开发者_Go百科troller is creating in the app delegate and it view added there as well to the window.

Here is an xcode project to show my problem: http://www.qfpost.com/download.do?get=92f03538907e72665ea794d98ff8392b


I had a look at your code. So the problem is that viewWillAppear/viewDidAppear get called when the view is added to the Window, not to one of it's subview. You might want to use viewDidLoad for that.


Firstly, are you sure you actually need to be doing what you're doing with this hierarchy of UIViewControllers? Why can't your MainViewController deal with the views that your subVC1 and subVC2 are responsible for?

Second, your viewWillAppear/viewDidAppear will get called when YOU write the code to call them from your MainViewController. Without knowing anything else about your design it's not really possible to advise on when you should call them, but if the sub-controllers' views are to be always visible when the 'main' view is visible, then it probably makes sense to call them from the viewWillAppear/viewDidAppear methods of your mainViewController.

0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号