TitaniumのUIコントロールの親オブジェクトを得る
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って言われてもそりゃドキュメントに載ってないし。むしろよく知ってたな!
ドキュメント検索しても親ディレクトリ取得するファイルシステム関連のメソッドしか出てこないよ!