Maccle

【基本】TitaniumのWindow間で変数を引き継ぐ方法

約 4 分
【基本】TitaniumのWindow間で変数を引き継ぐ方法

5325036248_20719b6216_b_miniTitanium Mobileでjsファイルをまたぐウインドウ(Ti.UI.Window)間で変数を引き継ぐ方法として多用してます。

例えば、タブの切り替え、ボタンやテーブルRowのタップなどのイベントをトリガーにして、元のwindow1のスクリプト内で生成された変数を次にオープンするwindow2をのスクリプトに渡したい場合

window1.jsの内容

[js]
// 引き継ぎたい変数
var hoge = ‘hoge’;
var fuga = ‘fuga’;
var objArray = {hoge: ‘HOGE’, fuga: ‘FUGA’};

// Window2
var window2 = Titanium.UI.createWindow( {
title:’Window1′,
modal:true, // モーダル有効にしてみた
url:’window2.js’
});

// ボタン
var button = Titanium.UI.createButton( {
title:’Open Window2′
});

// ボタン追加
window2.add(button);

/**********************************
* ここで window2.js に引き継いでいる
**********************************/
window2.hoge = hoge;
window2.foge = fuga;
window2.objArray = objArray;
window2.myTab = myTab; // window1.js 自体が既に引き継いでいるタブ

// クリックイベント取得
button.addEventListener(‘click’, function(e) {
// アニメーションでオープンする場合↓
window2.open({animated:true});

// スライドしてオープンする場合 ↓
// myTab.open(window2, {animated:true});
});[/js]

上記の window1.js のボタンクリックイベントで window2.jsに 処理が引き継がれて window2 がオープンすると、以下の解釈。

window2.jsの内容

[js]
// 自分自身のウインドウ( = window2)
var window = Titanium.UI.currentWindow;
// window1から引き継いだ変数:hoge
var myHoge = window.hoge;
// window1から引き継いだ変数:fuga
var myFuga = window.fuga;
// window1から引き継いだ変数:objArray
var myObjArray = window.objArray;
// 引き継いだタブ
var myTab = window.myTab;

Ti.API.debug(myHoge + ‘\n’ + myFuga + ‘\n’ + myObjArray.hoge + ‘\n’ + myObjArray.fuga);[/js]

これをビルドしてWindow1のボタンをタップしてオープンすると、コンソールに表示される結果がこれ。

実行結果

hoge
fuga
HOGE
FUGA

About The Author

某IT系なんちゃってエンジニアヨーダ
Apple好きだけど盲目マカーは気持ち悪いと思ってる中道だと思い込んでるしがないダメダメエンジニア。

今もってるApple製品↓
Macbook Pro 15 inch, iMac 27 inch (Late 2009), iPhone 6 Plus, iPad (初代! いらない!)
Follow :

Leave A Reply

*

Comment On Facebook