2017-12-03 3 views
0

pushViewControllerを介して既存のUIViewcontrollerにsegueの問題があります。ナビゲーションスタックは更新されません.GMSAutocompleteResultsViewControllerのセグレット

私はresultsViewControllerで場所をタップだとき、私はMainVCへのセグエを期待するが、私はエラーを持っている:

pushViewController:アニメーション:上と呼ばれる既存のトランジションやプレゼンテーションが行われている間、ナビゲーションスタックは更新されません。

これを修正してMainVCに移行するにはどうすればよいですか?

+0

階層内の「SearchVC」はどこですか? Navigation VCのルートですか? Nav Stackにプッシュされましたか?それは "提示された"か?ストーリーボードに実際の**セグ**が定義されていますか?もしそうなら、あなたはsegueを起動し、同時に '.pushViewController'を呼び出すことが可能でしょうか? – DonMag

+0

スクリーンショットhttps://imgur.com/a/vcNVUをご確認ください。これはストーリーボードで定義された実際のセグを持つ階層です。 SearchVCはMainVCからプログラムで提示されました: 'let storyBoard:UIStoryboard = UIStoryboard(名前:" Main "、バンドル:なし)、 searchVC = storyBoard.instantiateViewController(withIdentifier:" SearchVC ") SearchVC、self.navigationController?.pushViewController(searchVC、animated:false) 'この移行はうまくいきます。 – Rurom

答えて

1

カップルの事:

  1. あなたは、ナビゲーション上の "アップ倍増" されていないことを確認してください。 Segueを使用して別のView Controllerに移行する場合は、.pushViewController()またはpresent()とコールしないでください。

  2. プッシュの違いを理解します。あなたのケースでは

MainVCがあなたからNavControllerのルートVCで、セグエはナビゲーションスタックにSearchVCを押したことを(あなたの説明とあなたのスクリーンショットに基づく)が表示されます。 SearchVCが「右からスライドする」場合は、ほぼ確実です。

あなたはを持っている場合は、あなたがpopViewController(animated: Bool)をスタックからポップそれにしたい、ナビゲーションスタック上に VCを押しました。それは「前のVCを左から戻す」でしょう。あなたのgoToVc()機能で

は、あなたがMainVC新しいインスタンスを作成し、スタックにプッシュしようとしています。

関連する問題