在UINavigationController中修改视图控制器堆栈的问题

时间:2011-08-19 15:32:39

标签: iphone ios cocoa uinavigationcontroller navigationcontroller

我创建了简单的导航演示,它有5个视图控制器:

  • RootViewController(UITableViewController)
  • FirstViewController
  • SecondViewController
  • ThirdViewController
  • FourthViewController

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一起正常工作。

提前致谢

0 个答案:

没有答案