【问题标题】:Setting delegates to nil in viewWillDisappear?在 viewWillDisappear 中将代表设置为零?
【发布时间】:2016-09-30 23:37:55
【问题描述】:

当视图控制器调用 viewWillDisappear 时,我应该将委托设置为 nil 吗?当然,在调用 viewWillAppear 时再次设置委托。

当视图控制器未激活但委托仍设置为向视图控制器发送消息时,委托及其调用会发生什么情况?

【问题讨论】:

    标签: ios uiviewcontroller delegates


    【解决方案1】:

    真的取决于您的用例。如果您希望视图控制器在不在屏幕上时忽略委托回调,那么请确保您可以在 viewWillDisappear 中取消委托。但是,我发现这在某些情况下很危险。考虑一下,UITableView 数据源。如果您在 viewWillDisappear 中将 dataSource 设为 nil,那么由于某种原因您尝试 reloadData 当视图不在视图中时,表格视图将无法正确重新加载。

    我通常喜欢只在dealloc 中取零。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-05-02
      • 1970-01-01
      • 2019-08-04
      • 1970-01-01
      • 2021-08-27
      • 1970-01-01
      • 1970-01-01
      • 2018-02-13
      相关资源
      最近更新 更多