ViewDidAppear/ViewWillAppear not being called
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
.
精彩评论