2011-07-07 3 views
0

チタンSDKバージョン:1.7.0 iPhone SDKバージョン:4.2Appcelerator。

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

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

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

"updateRow"という機能がありますが、その子要素ではなく行のタイトルのみを更新することができます。

すべての入力をいただきありがとうございます!

答えて

0

私の経験では、selectRow、updateRowなどではなく、変更するたびにtableView.setData(rowArray)が最適です。実際の行要素については、row.children [x] .children [x ]。問題は、階層に細心の注意を払わなければならないことです。より良い方法を見つけたらお知らせください!

+0

私はsetDataメソッドが配列を更新して文句を言わないの変更を反映することが文句を言わないならば。それから、私はもう一度APIへのリクエストをしなければならず、何も得られません。私はリロードせずにテーブルが更新される "ajax"リクエストをしたいと思います。 –

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); 
}); 
+0

非常に興味深い見えます!ですから、あなたは、配列ではなく行自体を更新するほうがいいと言いますか? "updatedContactObject"とは何ですか?私はちょうど編集ウィンドウでテキストフィールドを使用しています。可能であれば、コードを少し拡張してください。私は100%は更新ビットを行う方法を確認していない。 –

+0

私は近づいています。残念ながら、私はあなたの例を使用することはできませんので、私はテーブルのセクションを使用しています。または私はできますか?助けてください! –

+0

あなたのコードを理解するのを手伝ってください。 –