问题
Head's up: This question is related to the recent deprecation of viewDidUnload. I have seen "great" and logical answers around this topic, but apparently they were proven wrong. Proceed with caution, this topic is very confusing as you see.
From Apple's Docs:
However, the system automatically releases these expensive resources when the view is not attached to a window. The remaining memory used by most views is small enough that it is not worth it for the system to automatically purge and recreate the view hierarchy.
So... Can I safely assume in iOS 6 that, as long as I don't explicitly set the viewController's view to nil (unload it manually), viewDidLoad
will only be called only once for any allocated viewController instance throughout the lifetime of the application?
回答1:
As of iOS 6, your UIViewController
subclass will only receive viewDidLoad
once, unless you write code to set its view
back to nil
.
However, I wouldn't rely on that behavior in a complex system-provided view controller like UIImagePickerController
. Perhaps it sets its own view
back to nil.
来源:https://stackoverflow.com/questions/13152304/viewdidload-in-ios-6-called-once