【发布时间】:2017-02-26 19:08:56
【问题描述】:
在 App 课上我有这个:
MainPage = new NavigationPage(new MainPage());
在 MainPage OnAppearing 中:
protected async override void OnAppearing ()
{
base.OnAppearing ();
if (TempUserInfo.IsNewUser ())
await this.Navigation.PushModalAsync ( new SignUpPage ());
}
用户输入所有信息后在 SignUpPage 上,我使用这个:
await this.Navigation.PushModalAsync (new VerificationCodePage());
最后,在 VerificationPage 上检查验证码后,我使用了这个:
await this.Navigation.PopToRootAsync ();
现在,我收到了这个错误:
iOS 全球不支持 PopToRootAsync,请使用 NavigationPage。
我想要实现的和上面这个导航设置完全一样。
【问题讨论】:
-
你认为如果我使用像 MVVMLight 这样的库在这种情况下会有所帮助吗?我记得它有不同的导航选项。只是想...
-
你已经完成了 2 个 PushModalAsync,所以你需要做 2 个 PopModalAync,然后是 PopToRootAsync。
-
如果我从 VerificationPage 执行 PopModalAsyn,这会将我送回 SignUpPage !相反,我想弹出到主页。
-
这就是为什么你需要做 2 个 PopModals。如果您不喜欢这样,请重新设计您的导航。一种可能性是在您的 App 类中检测新用户,然后直接导航到 Signup。注册完成后,无需导航到 MainPage,只需完全换掉 App.MainPage。
标签: c# ios xamarin.forms