AppDelegate からナビゲーション コントローラーを呼び出そうとしているようです。ナビゲーション コントローラーと連携するように AppDelegate を具体的に設定していない限り (のサブクラスである必要がありUIViewController
ます)、AppDelegate クラスにナビゲーション コントローラーがないため (既定では)、エラーが発生します。したがって、その呼び出しを行うと、ナビゲーション コントローラーが見つかりません。AppDelegate がUIResponder
ではなくのサブクラスであることに注意してUIViewController
ください。
@interface AppDelegate : UIResponder <UIApplicationDelegate>
代わりに、ナビゲーション コントローラーを作成および/またはサブクラスに接続します。UIViewController
その後、サブクラスから次のような呼び出しを行うことができます。
[self.navigationController popToViewController:vc animated:YES];
ナビゲーション コントローラーを作成してセットアップするには、次の手順に従います (ストーリーボードを使用していない場合は異なる場合があります)。
- 新しい
UINavigationController
Obj-C サブクラスを作成します。Xcode メニュー バーで、 を選択するか、 +File > New
を押します。クラスに名前を付けて、そのスーパークラスを次
のように設定し
ます。完全に新しいクラスが絶対に必要というわけではないことに注意してください。プロパティが使用可能である限り、-のサブクラスである既存のクラスを使用できます。CMDNUINavigationController
UIViewController
navigationController
- Xcode のオブジェクト ライブラリからナビゲーション コントローラーを追加し、必要な方法で設定します。
- Storyboard で NavigationController を選択し、 Utilities Panelを開き、Identity Inspector Tabを選択します。名前を自分のクラスまたはサブクラス
Custom Class
の名前に設定します。UIViewController
UINavigationController
navigationController
クラスから、View Controller に関連する他の何百ものプロパティの中で、プロパティを使用できるようになります。AppDelegate は実際には、アプリをセットアップし、アプリ イベント (アプリの終了、アプリのバックグラウンド化、アプリの開始など) を処理するための場所であることを忘れないでください。