[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^)/
Auto Amazon Links: プロダクトが見つかりません。
2012-06-17