MVVMCross、iOS のみを使用してログイン/ログアウトを実装する必要があります。ユーザーがログインした後、ビューを閉じて、「実際の」最初のビューをルートコントローラーにしたいと考えています。ログアウトの場合は、逆に同じことをしたいと思います。LoginViewModel が要求されるたびに、ルートをクリアして置き換えます。
このRemove ViewController from stackは、ClearTopパラメータがあることを示していますが、v3ではなくなっているように見えますか?
次に、さまざまな MvvmCross (v3) プラットフォームで GoBack を処理するための最良の方法は何ですか。このプレゼンターを実装しました。
public override void Close(IMvxViewModel toClose)
{
if (toClose is LoginViewModel)
{
ClearBackStack();
Show(new MvxViewModelRequest() { ViewModelType = typeof(FirstViewModel)});
return;
}
base.Close(toClose);
}
public override void Show(MvxViewModelRequest request)
{
if (request.ViewModelType == typeof (LoginViewModel))
{
ClearBackStack();
}
base.Show(request);
}
これはこれを処理する正しい方法ですか?より簡単なメカニズムはありますか (v3 以前のようなもの)? 代わりに ChangePresentation をオーバーライドする必要がありますか?
また、ビューから ShowViewModel を呼び出すメカニズムはありますか? IMvxViewDispatcher を解決する必要がありますか、それとももっと簡単な方法がありますか?