Возможно, я неправильно понимаю, что вам нужно, но позвольте мне попробовать ...
Когда вы создавали свой проект, вы должны были получить MainViewController и AppDelegate, которые как раскручивались, так и создавались для вас.Из предоставленного вами фрагмента мне кажется, что вы создаете новый (и, возможно, второй) делегат приложения из вашего MainViewController.
Вместо того, чтобы делать это, я бы посоветовал вам переместить ваш NavigationController на один уровень выше.в AppDelegate, предоставленный SDK.Затем в вашем MainViewController добавьте существующий AppDelegate в качестве IBOutlet и свяжите их все вместе в IB.Как только вы это сделаете, использование навигационного контроллера должно стать более плавным.
Например, мой MainWindow.xib имеет несколько объектов, и я выделил два, которые, я думаю, вас, вероятно, интересуют...
http://www.freeimagehosting.net/uploads/f50268da03.png
* Извините за ссылку - я пока не могу опубликовать изображения.
Затем из своего AppDelegate я настраиваю свое applicationDidFinishLaunchingWithOptions, как это...
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
navController.viewControllers = [NSArray arrayWithObject:mainMenuController];
// Override point for customization after app launch
[window addSubview:navController.view];
[window makeKeyAndVisible];
return YES;
}
Это удерживает navController на самом высоком уровне (где я думаю, что он принадлежит) и позволяет перемещать и просматривать представления во всем приложении, сохраняя при этом историю того, что находится в стеке.
Надеюсь, это поможет - возможно, я неправильно понял, что вы искали.
Удачи!Боб