c# – 清除Xamarin表单模态堆栈
发布时间:2020-12-15 20:59:43 所属栏目:百科 来源:网络整理
导读:我有一个Xamarin.Forms应用程序,它使用NavigationPage进行正常的屏幕导航.从其中一个屏幕(Stay Detail),我需要显示一系列4个顺序模态页面(如向导),它们收集数据以完成与Stay Detail相关的过程.进程中的每个页面都有一个“取消”按钮,允许用户取消向导并返回
我有一个Xamarin.Forms应用程序,它使用NavigationPage进行正常的屏幕导航.从其中一个屏幕(Stay Detail),我需要显示一系列4个顺序模态页面(如向导),它们收集数据以完成与Stay Detail相关的过程.进程中的每个页面都有一个“取消”按钮,允许用户取消向导并返回到保持详细信息.这是一般流程:
modal1 -> modal2 -> modal3 -> modal4 / StayDetail StayDetail 从StayDetail执行PushModalAsync以启动modal1,然后在各个模态页面之间执行PushModalAsync / PopModalAsync很容易.但是,我无法想出从第二个模态或更高版本退出模态堆栈的干净方法.最好的方法是什么? 解决方法
每次用户导航到下一个模态时,您不能只执行以下操作吗?
await Navigation.PushModalAsync(new modal2()); //Send user to new modal2 pages await Navigation.PopModalAsync(); //Pop modal1 page 然后当他们点击取消按钮时,你会再做一次PopModalAsync()并返回到StayDetail页面,因为你已经弹出了下面的所有模态. 如果他们在获得modal2之后需要一种方法回到modal1,你可以简单地传递modal1需要的任何数据,同时创建一个新的页面: Modal1Data modalData = new Modal1Data(); await Navigation.PushModalAsync(new modal1(modalData)); //Push old modal with previously entered data await Navigation.PopModalAsync(); //Pop modal2 page 您甚至可以在导航回modal1之前保存已从modal2输入的数据,这样当用户返回到modal2时,他们的所有信息仍会显示在屏幕上. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |