Вы должны убедиться, что у вас настроена иерархия представлений. RootViewController окна будет UINavigationController. UINavigationController управляет иерархией viewControllers, поэтому, когда вы создаете его экземпляр, вам нужно назначить rootViewController. Часто это подкласс UITableView.
Поскольку вы выделяете / запускаете окно, я предполагаю, что у вас нет XIB / NIB с UINavigationController и связанного rootViewController, например UITableViewController. Кроме того, вместо добавления представления вашего контроллера навигации, вам нужно назначить rootViewController в окне. Начиная с iOS4 это предпочтительный способ ведения дел. Смотрите также здесь . Попробуйте этот код:
YourViewController *yourViewController = /* code for alloc/initing your viewController */
_navigationController=[[UINavigationController alloc] initWithRootViewController:yourViewController ]
self.window.rootViewController=_navigationController; /* instead of using [self.window addSubview: _navigationController.view] */
[self.window makeKeyAndVisible];
Если вы используете XIB / NIB, вам необходимо убедиться, что _navigationController подключен к файлу XIB и имеет подкласс viewController, подключенный как rootViewController.
Удачи