【13日目】TabGroup をラップする

この記事はアストロナントカ @astronaughts さんの企画「Titanium mobile “early” Advent Calendar 2012」向けに書いています。11月1日 ~ 30日まで毎日誰かが Titanium Mobile についての記事を書いていくというイベントです。

Ti.UI.createTabGroup をスマートに書きたい

前々から不思議だったんです。何て TabGroup だけ add じゃなくて addTab なのかって。「ほら、私って View とは違うじゃない? Window だって手中に収めちゃう存在だし」なんて言葉が聞こえてきそうです。許せません。冗談です。

こんなの。もうちょっと取り回ししやすくしたいですね。

CommonJS モジュールにする

さくっとモジュール化しちゃいましょう。

こんなの。使い方は簡単。 TabQuery.js みたいな名前で保存しといて、

こんな感じで使います。 add でタブを追加できるよ! やったね! … 配列の中身が Ti.UI.Tab オブジェクト? 自力で実装頼む。動作は iOS シミュレータと Android エミュレータで確認してあります。 CommonJS Modules の引数の取扱が Android の場合は素直じゃなくて困りました。本当に Android さん鬼やで…。

open メソッドを呼ぶときに引数として 0 〜 適当な数字を入れればアプリを起動したときのデフォルトタブを指定することもできます。

get メソッドもあります。

引数無しで Ti.UI.TabGroup オブジェクト、数字渡すと対応した Ti.UI.Tab オブジェクト、文字列で current 渡すと今開いてるタブ、 previous で1個前に開いていたタブが返ってきます。