既存のTableViewの行を取得する
TableView > TableViewSectionの配列 > TableViewRowの配列
という構造を念頭に置く必要がある。
単純なテーブルの場合はdataにTableViewRowの配列をそのまま突っ込めるので
TableView > TableViewRowの配列
と勘違いしてしまいがちだが、その理解だとTableViewから行を取得することはできない。
ダメなコード
dataがrowsと同じ内容と期待して裏切られたコード。
rows = [ {title:"1st"}, {title:"2nd"} ] tv = Ti.UI.createTableView({data:rows}); // すぐに実行するとtvがまだnullの場合があるので1秒後に実行 setTimeout(function(){ Ti.API.info("rowCount:" + tv.data.rowCount); Ti.API.info("data:" + tv.data[0]); } , 1000);
いけるコード
正しい知識により正しい働きを得たコード。
rows = [ {title:"1st"}, {title:"2nd"} ] tv = Ti.UI.createTableView({data:rows}); // すぐに実行するとtvがまだnullの場合があるので1秒後に実行 setTimeout(function(){ section = tv.data[0]; Ti.API.info("rowCount:" + section.rowCount); Ti.API.info("row1:" + section.rows[0].title); Ti.API.info("row2:" + section.rows[1].title); } , 1000);
ドキュメント不足がつらい日々です。または見る場所を知らないだけかもしれませんが。