2

私は2つのタブでtabBarControllerを持っている:スイッチタブと同時に、スウィフトにナビのビューコントローラをリセットiOSの

TAB0、TAB0でTAB1

私は3つのビュー

でnavigationControllerを持っていますviewcを中にボタンを押すviewA(ルート)、viewB、viewcを

はコード

@IBAction func switchButtonTapped(sender: UIButton){ 
    tabBarController.selectedIndex = 1 
} 
を使用してTAB1に私をもたらします

私が問題を抱えているのは、tab1に切り替えるとview0(元のVC)にリセットするtab0を取得できず、viewCにとどまるということです。

tab0からtab1に切り替えると同時に、tab0のビューをリセットするにはどうすればよいですか?

私は同時に、タブを切り替えてナビコントローラのvcsをリセットしているので、これは別のスレッドで発生しますか?

@IBAction func switchButtonTapped(sender: UIButton){ 
     tabBarController.selectedIndex = 1 
     dispatch_async(dispatch_get_main_queue(), { 
self.navigationController?.popToRootViewController(animated:true) 
} 
    } 
+1

いいえ、それはすべてあなたが今やっているようにメインスレッドで発生する必要があります。一般的に、あなたがやろうとしていることはうまくいくはずです。 'animated'パラメータを' false'に変更しようとしましたか?あなたは実際にアニメーションをここでは望んでいません。 – Dima

+0

@Dimaそれは両方の方法で動作します。助けをありがとう –

答えて

2

注:スウィフト3コード:

@IBAction func switchButtonTapped(sender: UIButton){ 
    tabBarController?.selectedIndex = 1 
    navigationController?.popToRootViewController(animated: true) 
} 

これは私のために正常に動作します(これは、2番目のタブを選択し、私は最初のタブボタンをタップすると、それはルートを示し-first-最初のタブのViewController)。

+0

助けのためにうまくいってくれてありがとう –

+1

私はこの質問に対する私の答えとは別のタブからこれを実装しています(http://stackoverflow.com/questions/32716918/popping-a-view-controller-in -different-tab/40857974#40857974)があります。私はNSNotificationsを使用して、コード内のどこからでもこれを実現できるようにします。 –

関連する問題