Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/101.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/rust/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c 带有UINavigationController的ARC投影和释放屏幕_Objective C_Ios_Uinavigationcontroller_Automatic Ref Counting - Fatal编程技术网

Objective c 带有UINavigationController的ARC投影和释放屏幕

Objective c 带有UINavigationController的ARC投影和释放屏幕,objective-c,ios,uinavigationcontroller,automatic-ref-counting,Objective C,Ios,Uinavigationcontroller,Automatic Ref Counting,我有一个带有自定义返回/主页按钮的项目,当用户点击它时,我调用: -(IBAction)backBtnTapped:(id)sender { [appDelegate.navController popToRootViewControllerAnimated:YES]; } 现在我看到它没有调用viewDidUnload方法。为什么?如何在ARC project中强制卸载VC(及其视图?方法viewDidUnload仅在内存警告时调用,而不是在视图不在屏幕上时调用,因此您可能需要使

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

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

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

方法
viewDidUnload
仅在内存警告时调用,而不是在视图不在屏幕上时调用,因此您可能需要使用
ViewDidEnglish:
ViewWillEnglish

要更好地解释viewDidUnload方法,可以查看以下问题:

因此,您可能不需要关心viewDidUnload何时被调用,只需要它做它需要做的事情。另外,您正在处理
viewdidense:
viewdirense中需要处理的内容

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


希望它能帮助你

我确信我没有循环引用,我只有一个指向这个屏幕的指针,当PoptRoot…这个视图控制器有一些委托或其他对象,可能是他创建的某个对象,对它有一些引用时,它仍然没有解除锁定?可能它是其中某个视图的委托。此控制器使用
UIScrollViewDelegate
和少量对象(也由此VC创建)。内部视图也有委托:
UIScrollViewDelegate
UITableViewDelegate
。此引用必须是弱引用,如果是强引用,则会创建循环引用,并且不会解除锁定对象,可能需要删除委托,因为这样可以使对象保持活动状态。如果我知道更多关于你正在尝试做的事情和你的代码,我可以提供更多的帮助。