如果未通过动画删除控制器,UIKit不会释放控制器吗?

eug*_*alo 6 iphone objective-c uitabbarcontroller uinavigationcontroller

在基于标签栏的应用程序中,如果我在一个选项卡中将一个控制器推入导航堆栈中,然后当另一个选项卡处于活动状态时,我尝试弹出该控制器,除非我弹出没有动画,否则它不会被释放.

这有效:

[navigationController popToRootViewControllerAnimated:NO];
Run Code Online (Sandbox Code Playgroud)

而这不是:

[navigationController popToRootViewControllerAnimated:YES];
Run Code Online (Sandbox Code Playgroud)

有没有人知道这里发生了什么?是animated使用不当的参数?

更新:

Apple告诉我,这确实是UIKit中的一个错误,他们认为它很紧急,并指定了一些人.它可能已在最新版本中得到解决,但我没有时间检查.

Nar*_*mar 0

Dshutsi 的建议是正确的。如果您希望删除通知,最好在控制器的 viewDidUnload 方法中调用。当控制器从堆栈中卸载时调用此方法。我只是引用这一点,因为我们不能投票赞成该评论作为答案。