假设我有导航控制器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中处理这种设置的正确方法是什么。
谢谢!