My problem is like this:
viewDidUnload is called when a UIViewControllers's view is unloaded, not when a subview is removed from view.
viewDidUnload
UIViewControllers
view