0

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

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

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

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

流程图:

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

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

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

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

另外-将类别选择器等放在某种弹出框/模态/弹出视图中而不是推送segue中会阻止清除值吗?我没有从这些观点中获得经验,有人可以给出一个好的起点吗?(也许是一个很好的教程而不是沉重的苹果文档:)

明天有一个截止日期,还有很多事情要完成,所以我非常感谢任何帮助!

感谢您的时间!!/戴夫

4

1 回答 1

2

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

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

于 2012-12-21T08:14:49.747 回答