既存の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);
ドキュメント不足がつらい日々です。または見る場所を知らないだけかもしれませんが。
