从自定义数据源中获取选定的行?
Posted
技术标签:
【中文标题】从自定义数据源中获取选定的行?【英文标题】:get selected row from custom datasource? 【发布时间】:2011-06-02 15:49:22 【问题描述】:我有一个显示自定义 UIPickerView 的视图。我还为 UIPickerView 提供了一个单独的 DataSource 类,它也是 UIPicker 的委托。
我想您需要从数据源(模型)而不是选择器本身获取选定的值。
从另一个视图获取自定义 UIPickerView 的选定值的最佳方法是什么?
我是否应该将值保存在 didSelectRow:(NSInteger)row inComponent:(NSInteger) 方法的自定义 DataSource 类的本地字段中,并从我的其他方法中使用该值的 getter观看次数?
【问题讨论】:
【参考方案1】:从您的问题来看,您似乎没有将代码与数据分开,换句话说,您没有遵循模型-视图-控制范式。因此,听起来您有一个控制数据的 ONE 视图……但现在您需要另一个视图,事情变得一团糟。
有多种方法可以共享数据,它们都取决于您如何处理这些数据。例如,假设一个视图创建数据对象并将它们存储在 NSMutableArray 或 NSMutableDictionary 中。然后,您可以传递该对象并让多个视图访问数据。
有些人可能喜欢将其创建为应用程序委托的属性。那么使用 [[UISharedApplication] delegate] 获取属性就很简单了。
我倾向于传递对象(除非使用 Core Data)并使用属性来获取和设置值。
如果答案有点含糊,我很抱歉,但问题也有点含糊 - 没有一种“正确”的方式来传递数据。有些比其他的更麻烦 - 您会立即知道哪些是完全错误的(您最终会与代码作斗争)。
【讨论】:
以上是关于从自定义数据源中获取选定的行?的主要内容,如果未能解决你的问题,请参考以下文章
从自定义 UIPopOver 问题推送新的 UIViewController