将值传递到另一个屏幕

Posted

技术标签:

【中文标题】将值传递到另一个屏幕【英文标题】:Pass a value to another screen 【发布时间】:2017-01-07 00:57:43 【问题描述】:

我有一个屏幕,用户可以在其中选择一个选项(不是浏览库,因为它不执行所需的操作)。

我想将用户选择的项目传递给浏览库使用的预制“DetailScreen1”。

我查看了浏览屏幕,但没有看到它是如何工作的,因为 navigate onselect 事件只是正常的导航。

代码:

Navigate(DetailScreen1, ScreenTransition.Fade)

我想做类似的事情

Navigate(DetailScreen1, ScreenTransition.None Last(listOfStuff))

谢谢

【问题讨论】:

【参考方案1】:

您可以使用Navigate function 的第三个参数将额外参数传递给被导航到的屏幕的上下文。例如,如果您的第一个屏幕有一个下拉菜单和一个文本输入控件,您希望将值传递到下一个屏幕,您可以使用以下表达式:

Navigate(DetailScreen1, ScreenTransition.Fade,  text: TextInput1.Value, dropdownChoice: Dropdown1.Selected.Value )

在 DetailScreen1 中,您可以使用那些可用的上下文变量。

这是一个示例:第一个屏幕中的下拉菜单包含一个部分列表,选择一个后,您将导航到另一个页面:

在“右箭头”中,我们可以设置如下 OnSelect 属性:

Navigate(ProductsScreen, ScreenTransition.Fade,  selectedSection: Dropdown1.Selected.Value )

然后,您可以在 ProductsScreen 中创建一个库,其项目根据传递的值进行过滤:

Items: Filter(AllProducts, Section = selectedSection)

【讨论】:

这个变量的持久性如何?它是否保留在内存中,或者如果您移动到另一个屏幕,您是否必须重新实例化它?比如像 current_user...? Navigate 的第三个参数将设置目标屏幕中context variable 的值。上下文变量将保留在该屏幕的内存中,直到另一个值设置为相同的变量。例如,如果您导航到传递值 a:1 的屏幕 B,则该屏幕中 a 的值将继续为 1 直到另一个调用(导航到屏幕 B 传递 a 作为参数或UpdateContext) 改变它的值。

以上是关于将值传递到另一个屏幕的主要内容,如果未能解决你的问题,请参考以下文章

ios 在 segue 期间将值传递到另一个视图

如何使用会话将值从一个php页面传递到另一个页面

将值从一个组件传递到另一个组件

Jquery:将值数组从一个数组输入传递到另一个数组输入字段

将值传递给要在底部工作表中使用的浮动操作按钮

将值从一个 Python 程序传递到另一个程序