MvvmCross iOS: cómo descartar un controller de vista al usar IMvxModelTouchView

He usado IMvXModelTouchView para una animation de pantalla emergente personalizada. Y, tengo un button de cierre en esta vista emergente. ¿Cuál es la forma correcta de volver a una vista previa?

Aquí está mi código:

public class PopupView : MvxViewController, IMvxModalTouchView { public PopupView() { ModalPresentationStyle = UIModalPresentationStyle.PageSheet; } public override void ViewDidLoad() { Title = "Map"; base.ViewDidLoad(); var closeButton = new UIButton(new RectangleF(0, 0, 50, 30)); closeButton.TouchUpInside += CloseButtonClicked(); Add(closeButton); } private EventHandler CloseButtonClicked() { return (sender, args) => NavigationController.DismissViewController(true, null); } } 

Funcionó, la primera vez que presioné este button, pero se bloqueó cuando traté de volver a abrir esta vista.

Sospecho que probablemente esté utilizando el estándar MvxModalSupportTouchViewPresenter que solo espera que se MvxModalSupportTouchViewPresenter una vista modal / viewModel a la vez, y que espera que view / viewModel se borre usando Close(this) desde ViewModel.

Consulte: MvxModalSupportTouchViewPresenter.cs # L29

Si tienes ideas fuertes sobre tu interfaz de usuario, entonces (en mi opinión) tu mejor apuesta es escribir tu propio presentador personalizado, entonces puedes abrir / cerrar / ocultar / mostrar lo que quieras. Para más información sobre la networkingacción de presentadores personalizados, vea algunos de los enlaces y videos de: http://slodge.blogspot.com/2013/06/presenter-roundup.html