我创建了简单的导航演示,它有5个视图控制器:
1st-3rd viewControllers只有一个按钮,可以使用[self.navigationController pushViewController:viewController]导航到下一个视图控制器,
在FourthViewController上我试图使用方法setViewControllers修改self.navigationController.viewControllers。我只是把空UIViewController而不是牛排中的一些viewController注意到,如果我用viewController替换ThirdViewController或FourthViewController一切都很完美,但是当我试图替换第一或第二个后退按钮时,当前的viewController就消失了,我无法把它放回去。看起来可以使用setViewControllers仅修改当前或之前的viewController。可能是修改以前的视图控制器会损坏堆栈吗?
这是self.navigationController.viewControllers数组完美运行时的内容:
RootViewController:0x6022890
FirstViewController:0x4b26670
SecondViewController:0x4b26b80
UIViewController:0x4b33570
FourthViewController:0x4e158d0
这是一个示例,当后退按钮在FourthViewController上消失时:
RootViewController:0x601f910
FirstViewController:0x6200330
UIViewController:0x4b237d0
ThirdViewController:0x4b266e0
FourthViewController:0x4b23e30
如果我尝试追加第五和第六个viewControllers,那么同样的情况发生了 - 在这种情况下,setViewControllers只能与第五和第六个viewControllers一起正常工作。
提前致谢