我有一个导航控制器,里面有 4 个 VC。我有一个单例类,其委托属性设置为堆栈顶部的 VC。我在每个 VC 的 dealloc 方法中将此委托设置为 nil。我在 rootVC 的 viewdidappear 方法中设置委托。
当我从第 4 个 VC 弹回根 VC 时,调用 dealloc 方法(堆栈中的所有 VC)和 viewdidappear 方法的顺序如下:
"FirstVC dealloc called"
"SecondVC dealloc called"
"viewdidappear of root VC is called"
"ThirdVC dealloc called"
现在,我面临的问题是委托被设置为 nil,即使我在根 VC 的 viewdidappear 方法中将其设置为 self(这也可以从控制流中看到)。我怎样才能防止这种情况?我希望在所有 VC 真正释放后调用 viewdidappear 方法。
谢谢, 奥贝德