0

Titanium SDK 版本:1.7.0 iPhone SDK 版本:4.2

我正在使用 Appcelerator 开发 iOS 应用程序。在这个应用程序中,我有一个包含联系人数据表的窗口。用户可以单击此表中的项目,然后会打开一个新窗口,他们可以在其中编辑联系人详细信息,然后单击保存。

用户单击保存后,我希望父窗口中的表使用从编辑窗口发回的信息更新其单击行的数据。

我的问题是。如果获得行索引,如何更新特定行中的标签?我计划从自定义事件中进行此更新,因此我不会仅使用 e.index 的“已保存”索引号,例如 5。

我知道有一个名为“updateRow”的函数,但我似乎只能更新行的标题而不是它的子元素。

感谢所有输入!

4

2 回答 2

2

这是我将采取的方法。

假设

  1. win1 包含表 (table1) 和一个数组,其中包含您可以更新的行(数据)
  2. win2是编辑发生的地方

在win2中单击“保存”按钮,在关闭窗口之前使用更新的联系方式触发一个事件;

Ti.App.fireEvent('contact.change' , updatedContactObject );
// Do database save here if required
win2.close();

在win1中添加一个eventListener:

Ti.App.addEventListener( 'contact.change' , function(e){
  var updatedContactObject = e.updatedContactObject;
  //
  // update the array and the row here
  //
  data[ updatedContactObject.id ] = updatedRowData;
  table1.setData(data);
});
于 2011-07-09T06:06:49.200 回答
0

根据我的经验,最好是tableView.setData(rowArray)每次进行更改,而不是 selectRow、updateRow 等。关于实际的行元素,您应该能够使用 row.children[x].children[x] 进行导航。问题是您必须密切注意层次结构。如果您找到更好的方法,请告诉我们!

于 2011-07-07T16:43:24.777 回答