Swift3.0 popToViewController 的使用

来源:互联网 发布:java笔试选择题及答案 编辑:程序博客网 时间:2024/06/05 20:11

1.这个有风险,如果push的固定,没有问题,如果多个地方push,[2]这个监测到的就有可能引起崩溃,推荐使用第二种

//[2]代表你想pop的对象的层级,rootVC为0 let idVC = self.navigationController?.viewControllers[2] as! IdentityViewController  _ = self.navigationController?.popToViewController(idVC, animated: true)
  • 1
  • 2
  • 3

2.另外一种不确定层级的方法(亲测可用)

for i in 0..<(self.navigationController?.viewControllers.count)! {            if self.navigationController?.viewControllers[i].isKind(of: YourViewController.self) == true {              _ = self.navigationController?.popToViewController(self.navigationController?.viewControllers[i] as! YourViewController, animated: true)              break          }

3.pop返回多个ViewController

//获取viewController的个数 let vcCount = self.navigationController?.viewControllers.count        _ = self.navigationController?.popToViewController((self.navigationController?.viewControllers[vcCount! - 2])!, animated: true)