他の多くの人と同じように、私は今日、2 つのビュー コントローラーを持ち、それらを切り替えることができる実験のコーディングを開始しました。ナビゲーションコントローラーを使用してこれを機能させましたが、実装について質問があります。
私の TwoViewsAppDelegate では、ナビゲーション コントローラーと rootViewController を定義します。
@interface TwoViewsAppDelegate : NSObject <UIApplicationDelegate> {
UIWindow *window;
UINavigationController *navigationController;
RootViewController *rootViewController;
}
次のように設定します。
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
rootViewController = [[RootViewController alloc] init];
navigationController = [[UINavigationController alloc] initWithRootViewController:rootViewController];
[window setRootViewController:navigationController];
[self.window makeKeyAndVisible];
return YES;
}
次に、rootViewController で、切り替える先の level2ViewController と、切り替えるために押すボタンを定義します。
@interface RootViewController : UIViewController {
UIButton *theButton;
Level2ViewController *level2ViewController;
}
RootViewController.m で押されたボタンへの応答は次のとおりです。
-(void)level1ButtonPressed:(id)sender
{
if (level2ViewController == nil)
{
level2ViewController = [[Level2ViewController alloc] init];
}
[self.navigationController pushViewController:level2ViewController animated:YES];
}
問題は、level3ViewController が存在する場合、level2ViewController などのメンバーとして定義する必要があることです。ただし、スタックにプッシュしたいビュー コントローラーの数は多くありません。
すべてのビュー コントローラーを 1 か所で、できればアプリのデリゲートで定義できると便利です。これは可能ですか?