2017-05-26 12 views
1

私は4つのビューコントローラをA、B、C、Dとします。私はViewController Aに移動し、残りのすべてのViewControllerを削除する必要があります。これを達成する方法swift3のスタックから1つを除くすべてのviewControllerを削除する方法

+0

あなたはナビゲーションコントローラを使用するか、子コントローラを追加していますか? –

+0

詳細情報を提供してください...この「スタック」とは何ですか? – Alladinian

+0

私が正しく理解していれば、[self.navigationController popToRootViewControllerAnimated:YES]のようなものです。動作するはずです! –

答えて

2
self.navigationController.popToRootViewController(animated: true) 
0

スタック内で1つのviewControllerを探している場合は、

if let viewControllers = self.navigationController?.viewControllers { 
    var element_count = 0 
    for controller in viewControllers { 
     if controller is YourViewController { 
      element_count = 1 
      self.navigationController?.popToViewController(controller, animated: true) 
      break 
     } 
    } 
    if element_count != 1{ 
     _ = self.navigationController?.popToRootViewController(animated: true) 
    } 
} 
+0

これはあなたが探しているものですか? – Prateekro

0

UINavigationControllerのviewControllersプロパティget setプロパティ、つまりあなたが書くことができている:あなたは、スタック内のスタックの後藤メインコントローラまたはfirstController内の1つのコントローラがあることを見つけることができなかった場合のために、私はまた、コードを追加しましたあなた自身のビューコントローラの配列。

たとえば、

let VCs = self.navigationController.viewControllers //VCs = [A, B, C, D] 

let vcA = VCs[0] //vcA = A 
//finally 
self.navigationController.viewControllers = [vcA] //done 
// OR 
self.navigationController.setViewControllers([vcA], animated: true) 
関連する問題