从子视图控制器重置根视图控制器中的对象

时间:2012-04-27 09:05:34

标签: objective-c memory-management

我的应用有4个视图控制器。第一个VC实例化一个对象并拥有它的“强大”所有权。每个VC将其传递给各自的子VC,它们与该对象的关系都很弱。当最后一个VC完成并且我做了     popToRootViewController 我希望最后一个VC重置此对象,以便第一个可以使用一个新的空对象,我该如何实现?我已经尝试将对象设置为nil并为对象分配init一个新对象但遗憾的是,这不起作用。任何想法?

1 个答案:

答案 0 :(得分:0)

使用代表。设置第二个VC(即root的第一个子节点),使其具有一个名为delegate(或parent,etc)的属性,该属性设置为指向父节点。而不是通过弱引用来调整它,告诉父母释放它,然后弹出。

或者,如果您不希望每个人都必须知道父级,则可以通过UIApplicationDelegate直接访问顶级视图控制器,假设它具有VC的属性。实际上,您可以在那里引用共享对象,并直接重置它。