objective-ccocoa-touchuiviewcontrolleruinavigationcontrolleruinavigationbar

Back button not appearing on UINavigationController


I have a UINavigationController setup in my AppDelegate:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {          
    // Add the navigation controller's view to the window and display.
    [self.window addSubview:navigationController.view];
    [self.window makeKeyAndVisible];

    return YES;
}

In my RootViewController I am pushing another view onto the stack:

//Show the deals
    DealViewController *dvc = [[DealViewController alloc] initWithNibName:@"DealViewController" bundle:nil];
    [self.navigationController.navigationBar setHidden:NO];
    [self.navigationController pushViewController:dvc animated:YES];

The view shows up, but there is no back button that is added to my navigation bar. Why is this and how can I resolve it?


Solution

  • You must think of the navigation controller as a stack of navigation controllers each controlling one screen full of information. You instantiate the navigation controller with the

    -(id)initWithRootViewController:(UIViewController *)rootViewController
    

    method. You specify the root view controller in this call. Then you add the navigation controller's view as a subview to the window, like you did before.

    If you want to show your second screen you push another view controller on the stack by using

    -(void)pushViewController:detailViewController animated:YES
    

    method.