【发布时间】:2017-09-16 13:29:25
【问题描述】:
我有一个类的实例,它的委托只能调用一次。
视图控制器 (View A) 将调用 self.delegate = self,并具有转到其他视图控制器 (VC) 的按钮。
在其中一个 VC 中,我需要调用此实例并再次设置委托。
最初我在viewWillAppear 中设置了委托,但这不起作用,因为我在viewDidLoad 中加载了委托数据,并且由于viewDidLoad 将首先运行,我可以在viewDidLoad 中设置委托或loadView。
虽然删除委托可以在dealloc 或viewWillDisappear 中,但如果我正在展示VC,则不会调用视图A 的dealloc 不是吗?由于该视图尚未删除。
所以我的问题是,在视图 A 中我在哪里设置 self.delegate = nil?
如果我使用当前的 VC 方法,我应该在视图 A 中的哪里设置和删除委托?
在提供的 VC 中,我可以通过 viewDidLoad 和 dealloc 设置和删除。
就应用生命周期的最佳实践提出这个问题。
【问题讨论】:
标签: ios objective-c iphone uiviewcontroller delegates