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