Swi*_*ect 3 modal-dialog xamarin.ios mvvmcross xamarin
如何使用MvvmCross在iOS上呈现模态视图?
使用Xamarin工作室在iOS和MvvmCross的NuGet版本4.2.2,没有的MvxModalSupportTouchViewPresenter,MvxModalNavSupportTouchViewPresenter或者IMvxModalTouchView甚至是可用的.
ViewModel甚至需要知道特定视图在iOS上作为模态视图呈现的事实吗?
Swi*_*ect 11
MvvmCross是一个强大的页面导航框架.默认导航使用ShowViewModel<AViewModel>将使用堆栈隐喻:在Android上一个在另一个上面,在iOS上相互滑动,并<在任一平台上使用返回.
您可以ViewPresenter通过采用以接口标记的形式给出一个提示来告诉给定视图是模态的IMvxModalIosView.
采用IMvxModalIosView协议:
public partial class AView : MvxViewController, IMvxModalIosView
Run Code Online (Sandbox Code Playgroud)
替换var setup = new Setup(this, Window)为:
var presenter = new MvxModalSupportIosViewPresenter(this, Window);
var setup = new Setup(this, presenter);
setup.Initialize();
Run Code Online (Sandbox Code Playgroud)
无需更改.ViewModel实际上并未意识到模态表示.调用:
ShowViewModel<AViewModel> // May be modal on certain platforms
Run Code Online (Sandbox Code Playgroud)
要关闭页面并返回上一页,无论您的演示风格如何,请使用Close(this)该ViewModel.这将关闭模态对话框,或弹出推送视图.完整的,可绑定的ICommand可能如下所示:
public ICommand BackCommand {
get { return new MvxCommand(() => Close(this)); }
}
Run Code Online (Sandbox Code Playgroud)
注意:在MvvmCross 4.2.2中,Touch已经重命名为iOS,IMvxModalTouchView现在也是IMvxModalIosView.新的using是:
using MvvmCross.iOS.Platform;using MvvmCross.iOS.Views.Presenters;| 归档时间: |
|
| 查看次数: |
3656 次 |
| 最近记录: |