我有一个带有自定义后退/主页按钮的项目,当用户点击它时我调用:
-(IBAction)backBtnTapped:(id)sender {
[appDelegate.navController popToRootViewControllerAnimated:YES];
}
现在我看到它没有调用 viewDidUnload 方法。为什么?如何在ARC项目中强制卸载VC(以及其中的 View )?
最佳答案
方法 viewDidUnload
仅在出现内存警告时才会被调用,而不会在 View 超出屏幕时被调用,为此您可能需要使用 viewDidDisappear:
或viewWillDisappear
为了更好地解释 viewDidUnload 方法,你可以看看这个问题:When is UIViewController viewDidUnload called?
因此,您可能不需要关心 viewDidUnload 何时被调用,只需关心它需要执行的操作即可。另外,您正在处理 viewDidDisappear:
或 viewWillDisappear
中需要处理的内容。
强制卸载可能不是解决这个问题的最佳方法,也许如果您在此方法中有很多逻辑,则需要将其更改为其他方法。不必担心调用release或dealloc,只需确保您的项目中没有循环引用,并且正确使用弱引用和强引用,以便弧可以正常工作。
希望对你有帮助!
关于objective-c - 使用 UINavigationController 的 ARC 项目和发布屏幕,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12179761/