MvvmCross で画面遷移は ViewModel 側で ShowViewModel<SecondViewModel>()
のように ShowViewModel メソッドを使います。
このとき iOS アプリで modal 画面として表示する方法です。
IMvxModalIosView の実装
View 側のクラスは IMvxModalIosView を実装します。
public partial class SecondView : MvxViewController<SecondViewModel>, IMvxModalIosView<SecondViewModel> { public SecondView(IntPtr handle) : base(handle) { } }
MvxIosViewPresenter のカスタマイズ
デフォルトの Presenter クラスを override することで、iOS の画面遷移・表示をカスタマイズできます。modal 表示をサポートするクラスが用意されているので、これを使います。
AppDelegate.cs にある次の部分を修正します。
var setup = new Setup(this, Window); setup.Initialize();
単に modal を使う場合は、MvxModalSupportIosViewPresenter クラスを使います。この場合は modal 画面の NavigationController は null になります。
var presenter = new MvxModalSupportIosViewPresenter(this, Window); var setup = new Setup(this, presenter); setup.Initialize();
NavigationBar を付けて modal 画面を表示したい場合は、MvxModalNavSupportIosViewPresenter クラスを使います。
var presenter = new MvxModalNavSupportIosViewPresenter(this, Window); var setup = new Setup(this, presenter); setup.Initialize();
何をしているかはソースコードを読むしかありません。