带输入字段的UITableView - 如何在进入详细视图和返回时保持值

时间:2012-12-21 04:14:21

标签: ipad cocoa-touch uitableview input uikit

有点恐慌,真的需要一些帮助!

我正在制作一个应用程序来填写表格。表单的布局在Web服务器上创建,然后ipad应用程序与其同步,复制表单数据库,然后在本地运行它。

一种类型的文本字段是UITextView,用户可以通过直接写入字段或使用许多预定义文本之一(也在Web服务器上定义)来输入文本。

要使用预定义文本,用户触摸/选择包含UITextView的表格单元格,然后在屏幕上按下类别选择器视图。在选择类别时,用户获得文本列表,并且在选择文本时,用户在插入之前获得简单的uitextview以对其进行编辑。使用保存按钮,用户可以移回原始视图,现在可以添加所选文本。

流程图:

 root view with input fields-> category picker -> text picker -> editor 
  /\                                                               |
   '------------------------------save text------------------------'

问题是当任何其他视图加载时,所有其他输入字段都被清空!所选字段的值通过prepareForSegue传递,因此保留一个。

我有一个保存功能,可以将所有字段保存到数据库中。我试图在 prepareforsegue 调用中调用它,但它要么崩溃要么什么都不做。

问题:我可以在哪里放置保存功能?可以/我应该用另一种方式吗?考虑将所有标记的值放在appDelegate中的字典中而不是运行save-function,但是每次编辑输入字段时如何更新它?

另外 - 将类别选择器等放入某种popover / modal / popup-view而不是push segue会阻止值清除?我没有这种观点的经验,有人能给出一个好的起点吗? (也许是一个很好的教程而不是沉重的苹果文档:)。

我明天有截止日期,还有更多要完成的LOADS,所以我非常感谢任何帮助!!

感谢您的时间! /戴夫

1 个答案:

答案 0 :(得分:2)

我认为你的问题是由缺少模型引起的(就模型 - 视图 - 控制器模式而言)。表示表单数据的模型(例如,自定义对象,NSArray,NSDictionary)应该更新视图,并且应该在prepareForSegue中传递,而不是输入字段的值。

具体而言,创建一个维护最新数据的新属性。当用户进行编辑或为某个字段选择类别时,请更新模型。然后,当您返回到窗体视图控制器时,使用viewDidAppear将输入字段更新为其最新值。