【问题标题】:Any code examples for using a UITableView to implement in-app settings?任何使用 UITableView 实现应用内设置的代码示例?
【发布时间】:2011-04-02 22:49:57
【问题描述】:
有使用 UITableView 实现应用内设置的代码示例吗?
这是获得 iPhone 设置应用程序外观和感觉的地方,一个自定义将设置构建到 UITableView 中。因此,您可以自定义设置使用 switch 类型语句返回的部分和单元格。
对审查编码方法特别感兴趣,以了解如何:
- 最好配置cellForRowAtIndexPath和didSelectRowAtIndexPath
- 如何处理您希望在单元格编辑中使用的那些单元格(例如文本)
- 例如,您需要启动到另一个屏幕以设置日期/时间的单元格
- 如何收集参数并传回调用 rootViewController(在我的情况下需要将数据持久化到 Core Data 持久化)
- 注意:使用 Core Data,因此对使用 InAppSettings 等库不感兴趣 [任何关于此类库是否可以通过我创建的 SO question 获得的反馈]。
谢谢
【问题讨论】:
标签:
iphone
ios
uitableview
application-settings
【解决方案1】:
我不确定您是否可以使用inappsettingskit 来满足您的需求。它是开源的,因此您可以随意修改代码,但它看起来并不是一个开箱即用的解决方案。
如果您想让这些设置在设置应用程序中可用,您将不得不接受一些解决方法,例如保存 NSDate 并获得一个不错的 UI 控件来修改它:使用文本字段,没有指定的控件让您选择一个约会。看看Apple's documentation。
所以最后一个选项是编码。首先,确定要支持的类型。然后创建反映这些类型的自定义 TableViewCells。如果某些类型确实需要一些特殊的编辑方式,例如颜色选择器,您也必须编写这些控制器。您可以使用委托方法tableView:didSelectRowAtIndexPath 将单元格设置为编辑模式,并显示自定义控制器或直接进行编辑,例如 UITextField。 Slider 直接处理,无需任何编码。
单元格需要某种标识符,以便您在模型中识别它们。通过使用NSFetchedResultsController,TableView 和 Core Data 可以很好地相互交互。使用模板创建一个简单的基于窗口的应用程序并选中 Use Core Data for Storage。 rootViewController 说明了 tableView 如何与 Core Data 一起工作。对于你的情况,它会变得有点复杂,因为插入一行必须确定它应该添加什么样的单元格。
我认为您应该对此进行调查,然后提出一些更具体的问题。