gpt4 book ai didi

ios - Mvvm 跨 iOS : how to dismiss a view controller when use IMvxModelTouchView

转载 作者:可可西里 更新时间:2023-11-01 05:41:30 26 4
gpt4 key购买 nike

我已将 IMvXModelTouchView 用于自定义弹出屏幕动画。而且,我在此弹出 View 上有一个关闭按钮。切换回先前 View 的正确方法是什么?

这是我的代码:

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

当我第一次点击这个关闭按钮时它成功了,但是当我试图再次弹出这个 View 时它崩溃了。

最佳答案

我怀疑您可能正在使用标准的 MvxModalSupportTouchViewPresenter,它只希望一次显示一个模态视图/viewModel,并且希望使用 Close( this) 来自 ViewModel。

参见:MvxModalSupportTouchViewPresenter.cs#L29

如果您对您的用户界面有很强的想法,那么(在我看来)您最好的选择是编写您自己的自定义演示器 - 然后您可以打开/关闭/隐藏/显示任何您想要的东西。有关编写自定义演示者的更多信息,请参阅以下链接和视频:http://slodge.blogspot.com/2013/06/presenter-roundup.html

关于ios - Mvvm 跨 iOS : how to dismiss a view controller when use IMvxModelTouchView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17755418/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com