从导航控制器删除视图控制器

时间:2016-11-08 10:47:26

标签: ios swift

我在导航控制器中有5个视图控制器,我想删除第5页上的第3页和第4页。以下代码的问题是,如果我删除索引3和索引4而我在第5页。我得到否再按一下按钮了。我应该再次回到第2页的按钮。但没有。解决办法是什么?感谢您提供的所有帮助。赞赏。这个错误真的让我发疯了

  

navigationController!.viewControllers.remove(at:3)      navigationController!.viewControllers.remove(at:4)

1 个答案:

答案 0 :(得分:3)

我认为更简洁的方法是修改viewControllers的数组,然后像这样将它们设置在导航控制器上..

if let nav = self.navigationController {
    var stack = nav.viewControllers
    // index starts at 0 so page three index is 2
    stack.removeAtIndex(2)
    stack.removeAtIndex(3)
    nav.setViewControllers(stack, animated: true)
}

我刚刚在我的一个导航堆栈上测试了这个并且保留了后退按钮,我认为这是由于setViewControllers方法正在做的事情并为你设置堆栈。