2017-09-13 6 views
0

私のアプリからログアウトするには、巻き戻しセグを使用しようとしています。ここで正しいviewcontrollerに行かないようにする

は私のビュー階層である:

MainVC->(show)->ConnectionVC->(show)->HomeTabBarVC->SettingsVC (4th tab of the HomeTabBarVC containing a tableview)

MainVC、ConnectionVCとHomeTabBarVCは、3つの異なるストーリーボードです。

SettingsVCの「切断」行を押すと、MainVCに戻したいと思います。

私はすでにこれに従うことを試みた:チュートリアルから(私はMainVCに入れて)unwindToThisViewController機能がトリガされた

What are unwind segues and how do you use them?

Unwind segue and nav button items not triggering after tab bar controller added

が、それだけの事最初のタブHomeTabBarVCに戻ります。 ...

(self.tabBarController! as! HomeTabBarVC).performSegue(withIdentifier: "unwindToMainVC", sender: self) 

self.performSegue(withIdentifier: "unwindToMainVC", sender: self) 

どちらも働いている

どれtoughtsを:

は、私は2つの方法で SettingsVCでこのアクションを実行しようとしましたか?

+0

「self.performSegue(...)」というコード行はどこに置いたのですか?それは正常に作成し、セグの名前を付けたと仮定して、正常に動作するはずです... – DonMag

+0

tableView(_ tableView:UITableView、didSelectRowAt indexPath:IndexPath)。私はその行が切断に対応していることを確認します – steed

+0

OK - あなたの "unwind"関数を 'MainVC'クラスのコードに追加しました。小さな" Class "アイコンから上の" Exit "アイコンにドラッグしました。 Interface Builderの 'HomeTabBarVC'を呼び出し、ポップアップからunwind関数を選択した後、Document Outlineでそのsegueを選択し、それに" unwindToMainVC "という識別子を付けましたか?そして、あなたは 'print()'やあなたの巻き戻し機能の中に何かがあるので、それが呼び出されていることを知っていますか? – DonMag

答えて

1

これは、unwind seguesを使用せずに行うことができます。ただ、popToRootViewControllerを使用します。

navigationController?.popToRootViewController(animated: true) 
+0

こんにちはthe4kmanとあなたの迅速な答えに感謝! 私はUINavigationControllerを使用していません.. – steed

0

私は解決策を見つけた:私は警告を「デタッチビューコントローラのビューコントローラを提示することは推奨され」ていたことを見た後、私は私のHomeTabBarVCでセグエを実行するための委任を作成し、それが正常に動作します!みんなあなたの助けをありがとう!

関連する問題