ARC推荐的模式用于管理由另一个推送到导航控制器

时间:2015-05-29 22:51:48

标签: ios uiviewcontroller automatic-ref-counting

ARC的新手,仍然习惯于没有自动释放(这是我最喜欢的Objective-C功能之一)。发现自己在解决以前非常简单的问题时遇到了一些麻烦:

假设我有导航控制器N,viewController A和viewController B. 我们还说viewController B是viewController A中的一个ivar。

现在假设A被推到N. A显示一个按钮,当按下该按钮时,将导致B被实例化并推到N.所以现在A和N都保留B.

按下后退按钮时,N弹出B离开堆栈。在这一点上,我希望B得到dealloc,因为它没有被使用并占用很多记忆 - 但A仍然保留B(因为A强烈引用它的ivars)。

我正在解决这个问题,让A成为navigationController的委托并回复navigationController: didShowViewController: animated:

这很有效,但显然不是一个好的模式。在ARC中处理这种设置的正确方法是什么。

谢谢!

0 个答案:

没有答案