为了账号安全,请及时绑定邮箱和手机立即绑定

在 MVVMCross 中从 4.4 迁移到 5.7 时出现 CustomPresenter 错误

在 MVVMCross 中从 4.4 迁移到 5.7 时出现 CustomPresenter 错误

C#
绝地无双 2023-12-17 10:21:20
我正在开发一个使用 MVVMCross 和 Xamarin for iOS 和 Android 构建的项目。我发现该项目使用了相当旧的 MVVMCross 版本(4.4.0),我正在尝试将其升级到当前版本(6.4)。我认为首先升级到 5.7 是个好主意,在稍后阶段,当我将导航切换到新形式等时,我将升级到 6++。我已经成功地将android版本运行到5.7,但是,iOS版本使用了customPresenter,我不太知道如何转换为5.1中引入的新Presenter。我认为我的自定义演示器基于 https://github.com/MvvmCross/MvvmCross-Samples/tree/master/XPlatformMenus/XPlatformMenusTabs.iOS有一段时间没有更新了。在我的 MvxTabPresenter 子类中,show 函数不再是可重写的。另外 IMvxModalIosView 似乎不再存在。public override void Show(IMvxIosView view)        {            if (view is IMvxModalIosView)            {                if (this._currentModalViewController != null)                {                    return;                }                var currentModalViewController = view as MvxViewController;                this._currentModalViewController = currentModalViewController;                currentModalViewController.ModalPresentationStyle = UIModalPresentationStyle.Popover;                CurrentTopViewController.AddChildViewController(currentModalViewController);                currentModalViewController.View.Frame = CurrentTopViewController.View.Bounds.Inset(10, 10);                currentModalViewController.View.Alpha = 0;                CurrentTopViewController.View.Add(currentModalViewController.View);                currentModalViewController.DidMoveToParentViewController(CurrentTopViewController);                UIView.Animate(0.25, () =>                {                    currentModalViewController.View.Alpha = 1;                });                //this.PresentModalViewController(currentModalViewController, true);                return;            }            if (view is HomeView)            {                if (this.CurrentTopViewController is MvxTabBarViewController)                {                    TabBarPresenter.SelectedIndex = 0;                    return;            base.CloseModalViewController();        }            }而且,这不再可以从超类中覆盖。关于如何解决这个问题有什么建议吗?亲切的问候, V
查看完整描述

1 回答

?
慕勒3428872

TA贡献1848条经验 获得超6个赞

正如您在 MvxIosViewPresenter 中看到的,现在 mvx 属性已注册到应调用的操作中。

因此,首先您应该继承自MvxIosViewPresenter。然后,对于模式,您应该覆盖 ShowModalViewController


查看完整回答
反对 回复 2023-12-17
  • 1 回答
  • 0 关注
  • 98 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信