1

最初のvc(ビューコントローラ)には1つのボタンがあります。埋め込まれたtab-bar controller.pleaseに添付された画像をチェックする2番目のvcに移動する必要があります。ボタンクリックイベントで私がバックボタンを押している間にUinavigationエラーが発生しました

enter image description here

私はこのようなタブバーを呼び出す: - 今

TabBarVC *vc=[self.storyboard instantiateViewControllerWithIdentifier:@"TabBarVC"]; 
[self.navigationController pushViewController:vc animated:YES]; 

私はそれが願望として、タブ・バーに行く押すが、私にメッセージを表示: - 「の仕上げ予期しない状態のナビゲーション遷移。ナビゲーションバーのサブビューツリーが破損する可能性があります。

私は戻るボタンアプリケーションのクラッシュをクリックして、私にこのエラーメッセージが表示さ: -

キャッチされない例外が原因アプリ「NSInvalidArgumentException」を終了、理由:「サブビューとしての自己を追加することはできません」

考えられる解決策: - 私はsecondvcに埋め込まれているタブバーコントローラを呼び出すので、これが原因である可能性があります... 私はこのように何にyesとアニメーションを設定していない: -

[self.navigationController pushViewController:vc animated:NO]; 

これでアプリケーションはクラッシュしませんでしたが、戻るボタンを押すとfirstvcに行くはずですが、もう一度タブバーコントローラ(同じビューコントローラ)に行きます。戻るボタンで2回クリックするとfirstvcになります希望。任意の提案どのように私はこのナビゲーションスタックの問題を削除することができます。

+0

TabBarVCのスーパークラスとは何ですか? –

+0

2番目のビューコントローラにタブバーコントローラを埋め込みました。 – arpit

答えて

1

おそらくあなたはあなたの問題を解決するのに役立つだろうと思っています。 注: - ユーザ名とパスワードは "praveen"です。サンプルプロジェクトをこのリンクに添付しました。 http://www.filedropper.com/tabbarapplicationwithlogin

+0

はい、あなたの例は望みどおり動作していますが、私の最後には働いていません: - segue識別子を追加して(Identifier - pass and show eg push)、ボタンをクリックしてください:[self performSegueWithIdentifier:@ "pass" nil]; 今私はアプリを実行し、私は私の同じエラーを表示するバックボタンをクリックすると、 "キャッチされない例外 'NSInvalidArgumentException'の理由でアプリケーションを終了する理由: '自分自身をサブビューとして追加できません'" あなたの例はfine.Haveあなたはこの例で何か他のことをしましたか? – arpit

+0

segueを実行しないでください。私のコーディングを行ってください。 –

+0

の代わりにsegueを使用しています。tabbarcontrl storyboard idをTabBarVCに設定します。これをコードと問題解決に使用します。 [self.navigationController pushViewController:vc animated:yes]; 私は少し混乱しています。コードの最初の行では、私はタブコントローラーのタイプをviewcontrollerに割り当てています。あなたの例で – arpit

関連する問題