0

我有一个带有自定义后退/主页按钮的项目,当用户点击它时,我调用:

  -(IBAction)backBtnTapped:(id)sender {
    [appDelegate.navController popToRootViewControllerAnimated:YES];
}

现在我看到它没有调用 viewDidUnload 方法。为什么?如何在 ARC 项目中强制卸载 VC(及其中的视图)?

4

1 回答 1

1

viewDidUnload仅当您有内存警告时才会调用该方法,而不是当视图超出屏幕时,为此您可能想要使用viewDidDisappear:viewWillDisappear

为了更好地解释 viewDidUnload 方法,你可以看看这个问题:UIViewController viewDidUnload 是什么时候调用的?

所以当你的 viewDidUnload 被调用时,你可能不需要关心,只需要它做它需要做的事情。此外,您正在照顾您需要照顾的东西viewDidDisappear:viewWillDisappear

强制卸载可能不是解决此问题的最佳方法,也许如果您在此方法中有很多逻辑,则需要将其更改为其他方法。不要担心调用 release 或 dealloc,只要确保你的项目中没有循环引用,并且你正在适当地使用弱引用和强引用,这样弧才能正常工作。

希望对你有帮助!

于 2012-08-29T14:17:32.070 回答