TitaniumのUIコントロールの親オブジェクトを得る

2011-02-02
かなり古い記事です。現在も有効な内容であるかどうか分かりませんのでご注意ください。

Titaniumのドキュメントには載ってないがgetParentメソッドが使える。
ここで言う親オブジェクトというのはそのUIコントロールが乗っかっているオブジェクトということで。

サンプルコード

app.js
var win = Ti.UI.createWindow({title:"ほげほげ"});
var view = Ti.UI.createView();

var button = Ti.UI.createButton({title:"ぼたん"});
button.addEventListener("click", function(e){
    alert(e.source.getParent().getParent().title);
})

view.add(button);
win.add(view);

win.open();

ボタンを押すと「ほげほげ」とアラートが出てきます。

使いどころ

カスタムプロパティやクロージャに頼らずに親オブジェクトにアクセスできるのは便利だと思う。

addEventListenerに渡すコールバック関数を無名関数にするのじゃなくて、よそで定義したい時に重宝するかも。
というか、実際によそで定義したいときにその関数内で親が取得できないのかなと思って探したらあったという流れだけど。

ただしアンドキュメンテッドなのでどうなのだろうという懸念はある。

ネタ元

why not useって言われてもそりゃドキュメントに載ってないし。むしろよく知ってたな!
ドキュメント検索しても親ディレクトリ取得するファイルシステム関連のメソッドしか出てこないよ!

Profile

フルスタック気味のフリーランスプログラマー。

どちらかと言うと得意はインフラ構築とサーバーサイドプログラミングですが、フロントエンドもぼちぼちやっています。

最近の興味範囲はWordPress、AWS、サーバーレス、UIデザイン。

愛車はセロー。カメラはペンタックス。旅好きです。横浜在住。