当 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/