在我的iOS应用中,有各种核心数据实体代表约会,笔记和联系人等内容。
我希望用户能够通过UITableView
编辑每个实体的选定属性。与iOS日历应用类似,当您点击“修改”时,系统会显示UITableView
,其中包含“开始时间”,“结束时间”等的可编辑值。
我想到这里可能会有大量的代码重用,所以我现在正在考虑创建一个泛型类ManagedObjectEditorViewController
,它接受一个托管对象,在其中显示所选的属性值表格视图,根据其类型进行格式化,并允许对其进行编辑。
我可以想到几种巧妙的方法,但在我花了很长时间之前,我想知道是否已经有了完成这项任务的东西?这似乎是一种经常使用的方法,我无法相信那里还没有一些开源代码。
有人听说过,或者使用过类似的东西吗?
答案 0 :(得分:2)
我即将做同样的事情。刚开始并且到目前为止工作。表示NSManagedObject
的表(主视图控制器的详细信息,具有主视图控制器本身的各个方面。)。
整个表格代表一个NSManagedOjbect
。有些字段和其他控件与简单属性相对应。
只有一个引用,其中引用的对象只是显示但可以更改。
有一个可编辑的NSObjects本身的引用,其中1和它们中只有1个存在。
可以添加,删除和编辑多个引用。非常类似于日历应用程序或地址簿应用程序。 (从功能的角度来看。虽然看起来不同)。
为此,我在表格单元格和视图控制器之间建立委托。这主要是因为我试图坚持MVC模式。
E.G。该单元格充当UITextViews
,UITextFields
的委托或作为按钮等的目标。
拥有NSManagedObject
和所有相关对象的(Detail-)View控制器充当我的单元格委托。它为细胞提供类似于IBActions的方法,以便细胞可以1)通知事件和2)移交相关视图,如果需要(我需要相应地显示一些弹出窗口)和3)对象本身,例如要删除的对象或从地址簿中获取数据的人员对象等。
然后,View控制器可以执行其自己的职责,即调用其他视图控制器(发送邮件,从地址簿中选择,提供一个包含用户可供选择的选项的弹出窗口,...)。
我昨天晚上刚建好了。 (这是我的一个空闲时间项目)。 到目前为止我很高兴,但这个概念还没有真正证明:)。
您目前最喜欢的方法是什么?