[Titanium Studio]tabGroupで”[ERROR] Adding an event listener to a proxy that isn’t already in the context”というエラーが出る場合の対処法

現在、Titanium Studio(Titanium Mobile)にて参考書を読みつつアプリ開発を学んでいるところなのですが、いきなり「[ERROR] Adding an event listener to a proxy that isn’t already in the context」というエラーに見舞われたので解決法をば。

ちなみに参考書は「Titanium Mobile iPhone/Androidアプリ開発入門―JavaScriptだけで作る」という本です。

まず、エラーが発生したプログラムコードの部分がここ。

myapp.ui.createApplicationTabGroup = function(){
Titanium.UI.setBackgroundColor('#000');
var tabGroup = Ti.UI.createTabGroup();
var tab1 = myapp.ui.createSampleTab('Tab 1', 'KS_nav_views.png', 'I am Window 1');
var tab2 = myapp.ui.createSampleTab('Tab 2', 'KS_nav_ui.png', 'I am Window 2');
tabGroup.addTab(tab1);
tabGroup.addTab(tab2);
return tabGroup;
};

で、調べてみたところによると、tabをtabGroupに追加する場合は、tabの参照自体を事前にtabGroup内に保持しとかないといけないようなんですね。 つまり、生成した後は内部プロパティとして保持して、そのままそれをaddTabすればいいようなんです。

というわけで変更したコードがこちら。

myapp.ui.createApplicationTabGroup = function(){
Titanium.UI.setBackgroundColor('#000');
var tabGroup = Ti.UI.createTabGroup();
tabGroup.tab1 = myapp.ui.createSampleTab('Tab 1', 'KS_nav_views.png', 'I am Window 1');
tabGroup.tab2 = myapp.ui.createSampleTab('Tab 2', 'KS_nav_ui.png', 'I am Window 2');
tabGroup.addTab(tabGroup.tab1);
tabGroup.addTab(tabGroup.tab2);
return tabGroup;
};

これで実行すると「[ERROR] Adding an event listener to a proxy that isn’t already in the context」エラーが無事に消滅してくれました(^o^)/

このページをシェアする

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

2012-06-17