2012-04-27 137 views
0

我的应用程序有4个视图控制器。第一个VC实例化一个对象并对其拥有“强大”所有权。每个VC将它传递给它们各自的孩子VC,它们与该对象都有弱关系。当最后一个VC完成,我做了一个 popToRootViewController 我想最后一个VC重置这个对象,以便第一个可以有一个新的空对象来处理,我如何实现这一目标?我已经尝试将对象设置为零,并将init分配给对象的新对象,但可悲的是,这不起作用。有任何想法吗?重置根视图控制器中的对象从子视图控制器

回答

0

使用委托。设置第二个VC(即根的第一个孩子)具有一个名为delegate(或父级等)的属性,该属性被设置为指向父级。而不是通过你的弱引用来调整它,告诉父母释放它,然后弹出。另外,如果你不想每个人都必须知道父级,你可以通过UIApplicationDelegate直接访问顶级视图控制器,假设它具有VC的属性。事实上,你可以在那里引用你的共享对象,并直接重置它。

+0

但是,如果我的控制器很深,我将不得不通过委托人的整个方式,这感觉不直观。 – nevva 2012-04-27 09:49:32

+0

@nevva - 查看编辑 - 使用UIApplicationDelegate的其他一些可能性。 – ckhan 2012-04-27 09:57:48

相关问题