从自定义数据源中获取选定的行?

时间:2011-06-02 15:49:22

标签: iphone ios4 uipickerview

我有查看显示自定义UIPickerView的视图。我还为UIPickerView提供了一个单独的DataSource类,它也是UIPicker的委托。

我想你需要从数据源(模型)中获取选定的值,而不是选择器本身。

从另一个视图获取自定义UIPickerView的选定值的最佳方法是什么?

我应该将值保存在自定义DataSource类的 didSelectRow:(NSInteger)行inComponent:(NSInteger)方法中的本地字段中,并为该值使用该值的getter视图?

1 个答案:

答案 0 :(得分:2)

从您的问题来看,您似乎没有将代码与数据分开,换句话说,您没有遵守模型 - 视图 - 控制范例。因此,听起来你有一个控制你的数据的一个视图......但现在你需要另一个视图,事情变得混乱。

共享数据有多种方式,它们都取决于您正在使用它做什么。例如,假设一个视图创建数据对象并将它们存储在NSMutableArray或NSMutableDictionary中。然后,您可以传递THAT对象并让多个视图访问数据。

有些人可能希望将其创建为应用程序委托的属性。然后使用[[UISharedApplication]委托]来获取属性是一件简单的事情。

我倾向于传递对象(除非使用Core Data)并使用属性来获取和设置值。

如果答案有点模糊,我很抱歉,但问题也有点模糊 - 没有一种“正确”的方式来传递数据。有些东西比其他东西更麻烦 - 你会马上知道那些错误的东西(你最终会对代码进行斗争)。