2013-07-19 38 views
4

我已將IMvXModelTouchView用於自定義彈出屏幕動畫。而且,我在這個彈出視圖上有一個關閉按鈕。什麼是切換回前一個視圖的正確方法?MvvmCross iOS:如何在使用時關閉視圖控制器IMvxModelTouchView

這裏是我的代碼如下所示:

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); 
    } 
} 

它的工作,當我點擊該關閉按鈕,但它崩潰時,我試圖再次彈出這個觀點的第一次。

回答

4

我懷疑你可能使用的是標準MvxModalSupportTouchViewPresenter,它只需要一次顯示一個模式視圖/視圖模型,哪一個需要使用ViewModel中的Close(this)來清除該視圖/視圖模型。

參見:MvxModalSupportTouchViewPresenter.cs#L29

如果您對您的UI,再強的想法(在我看來)最好的辦法是寫自己的自定義演示 - 那麼你可以打開任何你想要/關閉/隱藏/顯示。有關編寫自定義演示者的更多信息,請參閱以下鏈接和視頻:http://slodge.blogspot.com/2013/06/presenter-roundup.html

+0

它可以工作... thx很多。 –

相關問題