There is no need to conform to UINavigationControllerDelegate
to push a view controller. I'm guessing that your navigationController is nil.
The reason for this is that you are using a plain view controller, but what you need to do is create the view controller, and then wrap it in a navigation controller. As an example, assume you are now presenting viewController modally:
UIViewController *viewController = [[UIViewController alloc] init];
[self presentViewController:viewController animated:YES completion:nil];
doing this means viewController has no navigation controller, so you need to do this instead:
UIViewController *viewController = [[UIViewController alloc] init];
UINavigationController *navigationController = [[UINavigationController alloc] initWithRootViewController:viewController];
[self presentViewController:navigationController animated:YES completion:nil];