If you issue a memory warning in the simulator (look in the menu), this will get called for any view controller attached to a view that is not visible.
That's because view controllers by default are registered for memory warning notifications, and any view that is not currently being used will be unloaded by the view controller - the viewDidUnload method is there so that you can clean up anything else you would like, to save extra memory (or if you've retained some IBOutlets to help free up memory that would otherwise be released by the view being unloaded).
Generally any IBOutlets you release in dealloc, should also be released (and references set to nil) in this method.
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…