2016-06-30 2 views
0

左側のサイドバーメニュービューと右側のメインビューの2つのビューに分割された1つのウィンドウで構成された合金アプリケーションがあります。 ユーザがサイドバーの別のメニュー項目をクリックするたびに、メインビューに接続されているすべての子を削除し、そのメニュー項目に関連するビュー/コントローラをロードしてメインビューにアタッチします。私の質問:これで十分ですか?削除されたビューに内部の要素にイベントリスナーが添付されている場合、それらもクリーンアップされているかどうか 私は、新しいビュー/コントローラをロードする前に、私がインスタンス化して、controller.destroy()とcontroller.off()を呼び出す各コントローラへの参照を保持する必要はありませんか?Titanium:非ウィンドウビューに関連付けられたコントローラを正しくクリーンアップする

UI.View要素を「閉じる」(ウィンドウのみ)にすることはできないため、ウィンドウを持たないビューでは「onclose」イベントにクリーンアップ機能を付加できないので頼みます。

これは、チタンのこの状況を処理する正しい方法ですか?

答えて

0

イベントリスナーは、特にTi.APP.addEventListenersで参照を保持できます。

したがって、すべての子ビューを削除すると、イベントリスナーを手動で削除する必要があります。

+0

しかし、私が削除しているビューの内部要素にのみイベントリスナーを添付すれば、それらは存続するかどうかはわかりません。あなたの助けをありがとう – revy

+0

彼らはコレクションやモデルにバインドしない場合、生き残れません。イベントリスナーにTi.App.info(「いくつかの単語」)を追加して表示を閉じてもう一度開き、「いくつかの単語」が何回表示されているかを確認してください。閉じたビューのイベントリスナーがまだそこにあることを意味します。 – jack

+0

今、私はそれをありがとう! – revy

関連する問題