I have been able to successfully create a navigation controller and pass it a root view controller. My problem is when I try to push a new view from inside the root view I am having issues. say I have a UINavigationController called nav that I initialize, add a root view and add to the window in the app delegate. Then I have an IBAction in the root view class that is supposed to push another view on to the stack I initialize the second view then use Code: [self.nav pushViewController:secondLevel animated:YES]; because this is how the Navigation-Based template works. I know I am doing something wrong OOP wise. Do I need to set up a delegate for the UINavigationController or something?