我在导航控制器中有5个视图控制器,我想删除第5页上的第3页和第4页。以下代码的问题是,如果我删除索引3和索引4而我在第5页。我得到否再按一下按钮了。我应该再次回到第2页的按钮。但没有。解决办法是什么?感谢您提供的所有帮助。赞赏。这个错误真的让我发疯了
navigationController!.viewControllers.remove(at:3) navigationController!.viewControllers.remove(at:4)
答案 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
方法正在做的事情并为你设置堆栈。