views:

38

answers:

1

I have a UITableViewController as one of the view controllers on the second tab of my tab bar controller.

In didSelectRowAtIndexPath i create a detail view controller, but it never gets pushed onto the navigation stack... and the app doesnt crash either, as i can NSLog after the call to pushViewController.

This is the method:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
    KeyboardViewController *v = [[KeyboardViewController alloc] initWithNibName:@"KeyboardView" bundle:nil];
    [self.navigationController pushViewController:v animated:YES];
    NSLog(@"gets here OK"); 
}

What would cause this? Surely if navigationController didn't exist then it would crash? Since this is a UITableViewController, it should be created automatically should it not?

Thanks

+2  A: 

Surely if navigationController didn't exist then it would crash?

No, [nil method] does not crash.

Since this is a UITableViewController, it should be created automatically should it not?

A UITableViewController does not have a UINavigationController by default. You have to put the UITableViewController inside a UINavigationController.

vakio