我正在开发一个使用 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
慕勒3428872
相关分类