4

カスタム ポップアップ画面のアニメーションに 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

1 に答える 1

4

MvxModalSupportTouchViewPresenterおそらく、一度に 1 つのモーダル ビュー/ビューモデルのみが表示されることを期待し、そのビュー/ビューモデルがビューモデルから使用してクリアされることを期待する標準を使用していると思われClose(this)ます。

参照: MvxModalSupportTouchViewPresenter.cs#L29

UI について強いアイデアがある場合は、(私の意見では) 独自のカスタム プレゼンターを作成するのが最善の策です。カスタム プレゼンターの作成の詳細については、http ://slodge.blogspot.com/2013/06/presenter-roundup.html のリンクとビデオを参照してください。

于 2013-07-19T21:47:18.527 に答える