我正在使用iOS支持库中的MvxBaseViewController进行键盘处理。
通过重写dispose,我注意到当从Navigationcontroller弹出时,GC没有收集从MvxBaseViewController继承的视图。
当我在MvxBaseViewController中添加以下内容...
public override void ViewWillDisappear(bool animated)
{
base.ViewWillDisappear(animated);
this.UnregisterForKeyboardNotifications();
this.View.RemoveGestureRecognizer(this.tap);
}
...当我在我的视图中添加/删除ShouldReturn委托时......
public override void ViewWillAppear(bool animated)
{
base.ViewWillAppear(animated);
this.myTextField.ShouldReturn += this.TextFieldShouldReturn;
}
public override void ViewWillDisappear(bool animated)
{
base.ViewWillDisappear(animated);
this.myTextField.ShouldReturn -= this.TextFieldShouldReturn;
}
..然后我的观点被处理掉了。
我是Xamarin的MvvmCross和内存管理的初学者,所以我的问题是:
这种解决方法有任何缺点吗?这是处理这个问题的正确方法吗?