52

したがって、5つのビューコントローラーを使用してアプリを作成しています。最初のアプリはUINavigationControllerに埋め込まれており、最初の4つのビューコントローラー間のセグエは正常に機能します。ただし、5番目のView Controllerを導入するとこれが壊れ、エラーが発生します

Terminating app due to uncaught exception 'NSGenericException', reason: 'Push segues can only be used when the source controller is managed by an instance of UINavigationController.'

私はこの5番目のViewControllerで何も変わったことはありません。これは、画像ビューとラベルを備えた標準のViewControllerであり、すべてのセグエはストーリーボードのCtrlキーを押しながらドラッグするボタンによって呼び出されます。誰かがこれを引き起こしているものについて何か考えを持っていますか?

ありがとう

4

11 に答える 11

14

私の場合、元の VC がセグエを実行した時点で、Navigation Controller は移行中であり、既に可視の VC を変更していました。

私はそれを解決しました:

if (self.navigationController.visibleViewController == self) {
    [self performSegueWithIdentifier:@"thankyou" sender:self];
}

もうクラッシュしません。:)

于 2014-04-20T18:31:06.360 に答える
14

StoryBoard で UINavigationcontroller を Initial View controller (Initial Scene) として設定します。

于 2012-12-25T11:40:11.200 に答える
4

これは、ビュー コントローラーが継承するナビゲーション ビュー コントローラーではなく、ビュー コントローラーを指しているボタンやその他のものからのプッシュ セグエが原因である可能性が最も高いです。そのため、セグエをナビゲーション コントローラーに向ける必要があります。

お役に立てれば。

于 2013-01-23T21:32:51.313 に答える
1

Navigation Controller を Source View Controller に埋め込むだけです (プッシュしているビューではなく、1 つの初期ビュー)。これを行うには、ソース ビュー コントローラーを選択し、[エディターに移動] --> [埋め込み] --> [ナビゲーション コントローラー] を選択します。

Navigation Controller が実行した Navigation Bar と考えると . Navigation Controller を選択するだけで、「Show the Attributes Inspector」で Shows Navigation Bar を無効にします。

于 2013-03-26T00:08:50.710 に答える
0

私は同じ問題に直面しており、たくさん検索しましたが、何も役に立ちませんでした。いろいろ試した結果、やっと解決しました。私はxcode 5でプロジェクトを行っており、ストーリーボードを使用してビューを開発しています。3 つの画面があり、接続は..

view1 から view2 へ --> プッシュ

view2 から view3 へ --> プッシュ

view2 から view1-->modal (これはプッシュのみを使用する必要がある私の間違いです)

これは正常に機能していますが、ビュー2にバーボタンアイテム(戻る)を配置し、セグエ接続はモーダルでした。view2 バー ボタンをクリックすると、view1 に正しくリダイレ​​クトされますが、view1 から view2 に移動しようとすると、同じエラーが発生します。ソース ビューから宛先ビューにプッシュ セグエ タイプを指定する場合、宛先ビューからソース ビューに同じプッシュ セグエを使用する必要があるためです。

誰かの役に立てば幸いです..ありがとう

于 2014-03-28T10:19:56.717 に答える
0

UIViewController クラスを使用している場合

次に、セグエ識別子の宣言で1つのことを確認します。たとえば、設定しました

Identifier:MySegue1 Segue:Present Modally (UIViewController クラスを使用している場合はこれを選択)

プレゼンテーション: デフォルト トランジション: デフォルト

オブジェクトの減速が正しいことをもう1つ確認してください

たぶん私の答えは正確ではないかもしれませんが、これは私がこのエラーについて知っていることです。少しでもお役に立てば幸いです。

于 2016-01-19T09:40:16.617 に答える