Если вы начали с приложения, основанного на представлении, возможно, ваш контроллер представления не имеет доступного экземпляра self.navigationController
. Ваш контроллер представления должен находиться в стеке навигационных контроллеров, чтобы выдвигать другие контроллеры представления.
Чтобы превратить приложение на основе представления в одно с контроллером навигации, все, что вам действительно нужно, это отредактировать делегат приложения следующим образом:
// view based app template code
self.window.rootViewController = self.viewController;
становится
UINavigationController * controller = [[UINavigationController alloc] initWithRootViewController:self.viewController];
self.window.rootViewController = controller;
Возможно, вы также захотите сохранить навигационный контроллер как свойство делегата приложения.