ios - 在 viewWillDisappear 中将委托(delegate)设置为 nil?

标签 ios uiviewcontroller delegates

当 View Controller 调用 viewWillDisappear 时,我应该将委托(delegate)设置为 nil 吗?当然,在调用 viewWillAppear 时再次设置委托(delegate)。

当 View Controller 未激活但委托(delegate)仍设置为向 View Controller 发送消息时,委托(delegate)及其调用会发生什么情况?

最佳答案

实际上取决于您的用例。如果您希望 View Controller 在不在屏幕上时忽略委托(delegate)回调,那么请确保您可以在viewWillDisappear 中取消委托(delegate)。但是,我发现在某些情况下这很危险。考虑一下,UITableView 数据源。如果您在 viewWillDisappear 中清空数据源,那么由于某种原因您尝试在 View 不在 View 中时 reloadData, TableView 将不会正确重新加载。

我通常只喜欢在 dealloc 中使用 nil。

关于ios - 在 viewWillDisappear 中将委托(delegate)设置为 nil?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37571425/

相关文章:

ios - 当我将一个 View 添加到另一个 View 时(这两个 View 都由 View Controller 控制),我真的应该使用 addChildViewController 吗?

ios - 记住 UITableView 上的滚动位置

iphone - didSelectRowAtIndexPath 不工作

ios - 方法被调用,但未正确执行

ios - 在 iOS 应用程序中调试 MIDI

ios - UITableviewCell 动态高度以编程方式使用 UITableViewAutomaticDimension

iphone - 向 UITableView 添加详细信息 View

c# - 如何创建异步方法

ios - 在另一个 View Controller 上显示一个 View Controller 作为 subview (popoverController)

ios - iOS swift 应用程序启动时出现黑屏