Возможно, вы захотите поменять контроллеры представлений , а не , используя UINavigationController.
В вашем AppDelegate.h
@interface AppDelegate : NSObject <UIApplicationDelegate>
{
UIWindow *window;
UINavigationController *navigationController;
}
@property (nonatomic, retain) IBOutlet UIWindow *window;
@property (nonatomic, retain) IBOutlet UINavigationController *navigationController;
@end
И в - [AppDelegate applicationDidFinishLaunching:] создать экземплярnavigationController, таким образом:
[self setNavigationController:[[UINavigationController alloc] initWithRootViewController:mySuperviewController]];
[[self navigationController] setNavigationBarHidden:YES];
// Configure and show the window
[window addSubview:[navigationController view]];
[window makeKeyAndVisible];
Затем в SuperviewController.m вы можете создать экземпляры MainMenuController и MainGameController, как вы уже это делаете.Чтобы начать с MainMenuController, вы можете сделать это в SuperviewController -viewDidLoad
[[self navigationController] pushViewController:[self mainMenuController] animated:YES];
. Вам нужно было бы добавить несколько смартов для непосредственного переключения между mainMenuController и mainGameController - но это не составило бы трудностей.
Чтобы не перезагружать кончики снова и снова, рассмотрите определение методов доступа следующим образом:
- (MainGameController*) mainGameController
{
if (mainGameController == nil)
{
mainGameController = [[MainGameController alloc] initWithNibName:@"MainGame" bundle:nil];
}
return mainGameController;
}
Также имейте в виду, что переключение между контроллерами родственного представления включает в себя выталкивающий контроллер текущего представления (например, mainMenuController) до нажатия на другой контроллер представления (например, mainGameController).