Supposing I have 3 views: top middle end Set up with a navigation controller eg: top -> middle -> end in top: Code: [[self navigationController] pushViewController:middle animated:YES]; in middle: Code: [[self navigationController] pushViewController:end animated:YES]; and to move back up Code: [[self navigationController] popViewControllerAnimated:YES]; So this structure works just fine to drill up and down my views. My problem is that if I am at my last view, and I simulate a memory warning, and then drill back down to the middle view, my middle view has been reset (eg: all the controls are back to the defaults, not to how the user might have changed them). Is there a piece of the puzzle I'm missing here? The documentation seems to say that my view will only be released if it's not part of the view hiearchy. Do I have to do more than just a push to get it into the view hiearchy?