1

アプリの開始時にログイン ビュー コントローラーがあります。次に、ユーザーのログインが成功したら、ユーザーをその中にテーブルビューがあるビューに連れて行きます。ナビゲーション コントローラー内にテーブル ビューを埋め込みました。ユーザーを詳細ビューにプッシュするセグエがあります。ただし、行セルをクリックするとすぐに、次のエラーが発生します。

'Could not find a navigation controller for segue 'Event Details'. Push segues can only be used when the source controller is managed by an instance of UINavigationController.''

しかし、上で述べたように、テーブル ビューを埋め込むナビゲーション ビュー コントローラーがあります。このエラーの原因は何ですか?

アプリの流れは以下の通り

'->Login View     NavigatinViewController->(View with a table View inside)->Details'
4

2 に答える 2

1

ここでは..として使用せず、rootViewController..として使用UINavigationControllerすると思うので、このエラーでこの問題が発生する可能性がありますRootViewControllerUIViewController

出力については、この手順に従ってください..

  1. 新しいナビゲーション コントローラーをストーリーボードにドラッグします。デフォルトでは、テーブルビュー コントローラーにアタッチされます。

  2. テーブルビュー コントローラーを削除するナビゲーション コントローラーを右クリックし、「ルート ビュー コントローラー」プロパティを既存のビュー コントローラーに接続します。

  3. エントリ ポイントの矢印をビュー コントローラーからルート ビュー コントローラーに移動します。

アップデート:

この例を参照してください。これにより、検証を行い、詳細ビューに明確にプッシュできます...

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
    if ([segue.identifier isEqualToString:@"AddPlayer"])
    {
        UINavigationController *navigationController = 
          segue.destinationViewController;
        PlayerDetailsViewController 
          *playerDetailsViewController = 
            [[navigationController viewControllers] 
              objectAtIndex:0];
        playerDetailsViewController.delegate = self;
    }
}
于 2012-12-21T07:49:37.363 に答える
1

ビューコントローラーが欠落しているようです。

具体的には、次のようなものが必要です。

ログイン ビュー > ナビゲーション コントローラ > テーブル ビュー コントローラ > 詳細ビュー コントローラ

ストーリーボードを作成していると仮定すると、テーブル ビュー コントローラーを選択し、[エディター] > [埋め込み] > [ナビゲーション コントローラー] を選択することで、ナビゲーション コントローラーを簡単に追加できます。

または、ビュー コントローラー オブジェクト内に埋め込まれたテーブル ビュー専用のナビゲーション コントローラーが必要な場合は、ビュー コントローラーにコンテナー ビューを作成して、テーブル ビューと関連するナビゲーション コントローラーを表示することをお勧めします。

後者を実現するには、コンテナー オブジェクトをビュー コントローラーにドラッグし、表示するテーブル ビューに合わせてサイズを変更します。コンテナー ビューが自動的に作成するビュー コントローラーを削除します。

次に、テーブル ビュー コントローラーを作成し、コンテナー ビューからセグエします。このセグエは「埋め込み」セグエになります。最後に、作成したばかりのテーブル ビュー コントローラーをナビゲーション コントローラーに埋め込み、テーブル ビュー コントローラーからのプッシュ セグエを詳細ビュー コントローラーに追加します。

于 2012-12-21T07:52:21.540 に答える