1
iOS開発の学習を始めたばかりです。以下に示すように、UINavigationControllerを開始する唯一の目的でViewControllerクラスを作成するサンプルコードを見てきました。ちょうどスニペット2のように、AppDelegateでUINavigationControllerを作成し、self.window.rootViewControllerに割り当てる対、その利点は何ですか:AppDelegateでインスタンス化されたUINavigationController
snippet1:
MyViewController *mvc = [[MyViewController alloc] init];
UINavigationController *navController = [[[UINavigationController alloc] initWithRootViewController:mvc] autorelease];
self.window.rootViewController = navController;
snippet2:
UINavigationController *navController = [[UINavigationController alloc] init];
self.window.rootViewController = navController;
私はsnippet1のUINavigationControllerによって管理されるデフォルトのView Controllerを効果的に設定していますか?もしそうなら、私は別のビューに切り替えるには、私はMyViewController.mの中でそれを管理するのですか?それとも、私がnavControllerを作成したAppDelegate didFinishWithLaunchOptionsの中で管理しますか? – David
あなたは私にそれを打つ。ナビゲーションビューコントローラには独自のルートビューコントローラがあり、ルートビューコントローラを設定しないとメモリアクセスエラーが発生する可能性があります。 –
@Mr。 UIWindowにはルートビューコントローラのプロパティがあり、通常はUIWindowのインスタンスが1つしかありません(少なくとも私の学習のこの時点では)、UINavigationControllerは基本的にUIWindowを引き継ぎますか?したがって、UINavigationControllerインスタンスにビューをプッシュしてポップし、UIWindowに直接ビューを追加/削除することについて心配することはありませんか? – David