如何在复杂的导航堆栈之间传递变量

Posted

技术标签:

【中文标题】如何在复杂的导航堆栈之间传递变量【英文标题】:how to pass variables between a complex navigational stack 【发布时间】:2011-09-08 22:47:30 【问题描述】:

我有几个 uitableviews,用户可以使用它们在我的应用程序中设置不同类型的搜索参数,我将允许用户选择一个单元格,然后将新视图推送到堆栈中,用户可以在其中选择要搜索的内容搜索然后返回原始视图,并将值传递到最初选择的单元格中..

复杂的地方在于,每个原始搜索视图都可以将相同的搜索结果视图推送到堆栈中。

这里是我的意思的图形示例,因为它很难解释。

在此示例中,当当前视图控制器中的一个单元格被选中时,一次只能显示一个视图控制器,子视图会加载选项列表,两个视图控制器使用相同的子视图控制器。

我的问题是将您在子视图控制器中选择的值返回到正确的视图控制器...

我试图弄清楚如何将子视图控制器中的选定值返回到正确视图控制器中的正确单元格。我希望得到一些关于处理这种类型视图结构的正确方法的建议,因为它不是真的涵盖在我可以使用的许多书籍中,并且我希望利用你们在类似项目中的知识和经验。

【问题讨论】:

【参考方案1】:

一种常见的方法是在子视图控制器中为回调定义一个协议,并让每个主视图控制器实现......当他们创建或调用子视图控制器时,他们告诉它他们是进行更改时要调用的选择委托。然后他们也可以选择关闭子视图控制器。

【讨论】:

嗯,这是有道理的,将变量传递回正确的单元格怎么样......这也可以在委托中实现吗?我需要研究回调,因为它不是我以前做过的事情。 您通常将有关哪个单元格发起调用的信息传递给子 vc(对象或调用子视图的行)。

以上是关于如何在复杂的导航堆栈之间传递变量的主要内容,如果未能解决你的问题,请参考以下文章

如何在 XAML 页面之间传递值(参数)?

使用堆栈导航在自定义标题之间传递文本输入

如何在将数据推送到导航堆栈之前将数据传递给视图控制器并加载它?

反应原生导航在屏幕之间移动

如何在底部导航片段(或导航抽屉)之间传递数据?

将 prop 从组件传递到堆栈导航器