如何使用导航控制器iphone在视图之间共享数据

时间:2011-06-01 08:53:10

标签: iphone objective-c cocoa-touch

我有一个视图,它从数组中获取数据并在tableview中显示数据。此视图有一个导航控制器,其中有一个按钮。该按钮用于转到另一个高级搜索视图。让我们说在这个新视图中我有一个选择器,当用户从选择器中选择一个值并单击导航栏中的后退按钮时,我想获得用户选择的值。这样做的最佳做法是什么?如何将选定的值从一个活动发送到前一个活动?

提前致谢。

2 个答案:

答案 0 :(得分:0)

使用委托。编写自己的协议,如“PickerViewDelegate”。然后在“主视图”(具有表视图)中实现此协议。在PickerView中只需调用[delegate somethingPicked:something]。

我不确定,搜索值是模型实体。

答案 1 :(得分:0)

这里你需要的是Model-View-Controller设计模式的推理。

视图应该通过模型获取数据。因此,在高级搜索视图中,当用户选择某个值时,该值将存储在模型中。

当您返回时,第一个视图通过从模型中读取当前搜索值来重绘自身。

还有其他可能性,例如让搜索视图控制器拥有指向第一个视图的指针,并在搜索值发生变化时向其发送消息,但这不是非常模块化且非常脆弱。