#memory-management #xamarin.ios #mvvmcross
#управление памятью #xamarin.ios #mvvmcross
Вопрос:
Я использую MvxBaseViewController из библиотеки поддержки iOS для обработки клавиатуры.
Переопределяя dispose, я заметил, что мое представление, которое наследуется от MvxBaseViewController, не собирается GC, когда оно извлекается из Navigationcontroller.
Когда я добавляю следующее в 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;
}
.. затем мое представление удаляется.
Я новичок в MvvmCross и управлении памятью в Xamarin, поэтому мои вопросы:
Есть ли у меня какие-либо недостатки в этом обходном пути? Это правильный способ решения этой проблемы?