[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