我有一个带有自定义后退/主页按钮的项目,当用户点击它时,我调用:
-(IBAction)backBtnTapped:(id)sender {
[appDelegate.navController popToRootViewControllerAnimated:YES];
}
现在我看到它没有调用 viewDidUnload 方法。为什么?如何在 ARC 项目中强制卸载 VC(及其中的视图)?
我有一个带有自定义后退/主页按钮的项目,当用户点击它时,我调用:
-(IBAction)backBtnTapped:(id)sender {
[appDelegate.navController popToRootViewControllerAnimated:YES];
}
现在我看到它没有调用 viewDidUnload 方法。为什么?如何在 ARC 项目中强制卸载 VC(及其中的视图)?
viewDidUnload
仅当您有内存警告时才会调用该方法,而不是当视图超出屏幕时,为此您可能想要使用viewDidDisappear:
或viewWillDisappear
为了更好地解释 viewDidUnload 方法,你可以看看这个问题:UIViewController viewDidUnload 是什么时候调用的?
所以当你的 viewDidUnload 被调用时,你可能不需要关心,只需要它做它需要做的事情。此外,您正在照顾您需要照顾的东西viewDidDisappear:
或viewWillDisappear
。
强制卸载可能不是解决此问题的最佳方法,也许如果您在此方法中有很多逻辑,则需要将其更改为其他方法。不要担心调用 release 或 dealloc,只要确保你的项目中没有循环引用,并且你正在适当地使用弱引用和强引用,这样弧才能正常工作。
希望对你有帮助!