我一直在使用导航视图控制器已经有一段时间了,它真的很棒。问题是我不完全理解它。也许一些有经验的成员可以对这个话题有所了解。我有几个问题:
1)每个扩展UIViewController的类都有一个属性navigationController。 Apple doc声明这一点 - “如果视图控制器在其堆栈中,则仅返回导航控制器”。如果此控制器是根控制器,这是否意味着此属性为nil。
2)当使用方法[self.navigationController pushViewController:nextController animated:YES] nextController被推送到堆栈。如果你在nextController中调用self.navigationController,那么navigationController属性是否为nil?
3)每个navigationController都有自己的堆栈,还是所有控制器都有共享堆栈?
4)最后,如果你不弹出它们,堆栈上的项目会发生什么,但是发布导航控制器?让我们说你做push,push,push,然后在navigationController上发布。这些物体是留在堆叠上还是被破坏了?
答案 0 :(得分:1)
1)是的 2)没有 3)每个navigationController都有自己的堆栈 4)当您按下视图控制器时,导航控制器会保留它。释放导航控制器后,它会释放堆栈中的所有视图控制器。