c# - Xamarin Forms 在关闭 Current 后显示一个新页面
问题描述
嗨 Xamarin 开发人员,
所以我有一种情况,用户从页面 A 转到页面 B。
await Navigation.PushModalAsync(new PageB());
然后从页面 B 到页面 C,在这种情况下,页面 B 应该首先被关闭,然后页面 C 应该被呈现
await Navigation.PopModalAsync();
await Navigation.PushModalAsync(new PageC());
但是有了这个代码,页面 C 永远不会出现,你能帮我看看我做错了什么吗?
解决方案
当您在被调用页面中执行 PopModalAsync() 时,它将在调用页面中触发 OnAppearing() 事件处理程序。从模态页面返回后要做一些事情,你需要这样的事情:
public class PageA {
private bool returnedFromModal = false;
private async void ShowB_Clicked (object sender, EventArgs e) {
returnedFromModal = false;
await Navigation.PushModalAsync(new NavigationPage(new PageB()));
returnedFromModal = true;
}
protected override async void OnAppearing() {
base.OnAppearing();
if (returnedFromModal) {
returnedFromModal = false;
await Navigation.PushAsync(new PageC());
}
}
}
推荐阅读
- mysql - 尝试使用 Mysql.Data.Entity 时出现异常
- sitecore9 - Sitecore 9.1 安装错误
- java - JavaFX - 使用来自不同类的对象参数启动应用程序
- javascript - 在数据集中的引号内添加 JSON 结果
- java - 使用 ObjectMapper 反序列化到参数化类时出现 ClassCastException,即使使用 TypeReference 和 TypeFactory
- sql-server - 用于清理称呼的正则表达式功能
- kubernetes - Kiali 在 aws 上的 kubernetes 上安装错误 [错误:无法识别“STDIN”:版本“v1”中的种类“ClusterRole”没有匹配项]
- python - Keras 在反向传播的多个输出的多个损失中找到最佳损失
- c# - windows wpf MVVC模式,如何在该模式中适应代码逻辑
- ruby - 使用 Knife ssh 命令时,它在客户端使用的 ruby 版本与我手动 ssh 到它时不同