既存の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);

ドキュメント不足がつらい日々です。または見る場所を知らないだけかもしれませんが。

参考

この投稿へのコメント

コメントはありません。

コメントを残す

メールアドレスが公開されることはありません。

この投稿へのトラックバック

トラックバックはありません。

トラックバック URL