I have two window app and while I present first window I would like the view in second window to load and prepare content for later in background.
I've tried to use method loadView
but Apple says you should not call this method directly.
So far I've chosen to use the view's method userInteractionEnabled
which actually implicitly
calls viewDidLoad
method.
Is there an elegant way to force ViewControllers
viewDidLoad
method to fire before it should naturally (when window is key and presented)?
In iOS 9, Apple finally fixed this:
Swift 2.0, with same result of @Carl Veazey's solution:
You can create a global instance for that controller(May be in
AppDelegate
) and call the method you want to perform the action for. Then While pushing to that controller don't create a new instance Just use the instance you have created for global use.You can just call
[viewController view];
.The documentation for UIViewController explains how the view property is lazy-loaded and that
viewDidLoad
is called after the view is loaded.