iOS中订阅事件的最佳方法是ViewDidLoad,但是在关闭视图时,不会调用ViewDidUnload()(仅当内存警告时)。Monotouch/iOS:哪个地方是取消订阅代理的最佳选择
哪个地方最好取消订阅活动?
(在subviewController我同意引用的MainViewController一个事件,当打开子视图两次,我收到两个事件触发,因为在viewdidunload退订()永远不会被调用。)
如何与订阅/退订在ViewWillAppear/ViewWillDisapper中?
public override void ViewWillAppear (bool animated)
{
base.ViewWillAppear (animated);
this.mBL.OrderChanged += HandleOrderChanged;
}
public override void ViewWillDisappear (bool animated)
{
base.VieWillDisappear (animated);
if (this.mBL!=null)
this.mBL.OrderChanged -= HandleOrderChanged;
}
这有什么错用viewWillAppear中和ViewWillDisappear()?然后不需要检查。另一个关于你的检查的问题是:如果你在ViewDidUnload中调用“View.Window”,那么“View”调用不会再次加载视图吗? – Krumelur 2012-04-16 18:44:27
我会使用ViewWillAppear和ViewWillDisappear,谢谢。 – BlueSky 2012-04-17 06:03:36
请注意,在UINavigationController中,ViewWillAppear和ViewWillDisappear可能无法正常工作。 ViewWillAppear/Disappear不会在控制器被推上时调用。类似的情况发生在模态视图控制器。 – jonathanpeppers 2012-04-17 12:00:16