0

Titanium SDK バージョン: 1.7.0 iPhone SDK バージョン: 4.2

Appcelerator を使用して iOS アプリを開発しています。このアプリでは、連絡先データのテーブルを含むウィンドウを取得しました。ユーザーがこの表の項目をクリックすると、連絡先の詳細を編集できる新しいウィンドウが開き、[保存] をクリックできます。

ユーザーが保存をクリックした後、親ウィンドウのテーブルで、クリックされた行のデータを編集ウィンドウから返された情報で更新します。

私の質問はです。行インデックスを取得した場合、特定の行のラベルを更新するにはどうすればよいですか? カスタム イベントからこの更新を行う予定なので、例 5 のように "保存された" インデックス番号のみ e.index を使用しません。

「updateRow」という関数があることは知っていますが、子要素ではなく行のタイトルしか更新できないようです。

すべての入力に感謝します!

4

2 に答える 2

2

これが私がとるアプローチです。

仮定

  1. win1 には、テーブル (table1) と、更新可能な行 (data) を含む配列が含まれます。
  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 に答える