2016-06-30 1 views
0

왼쪽의 사이드 바 메뉴보기와 오른쪽의 기본보기의 두 가지보기로 나뉘어 진 한 창으로 구성된 합금 응용 프로그램이 있습니다. 사용자가 사이드 바에서 다른 메뉴 항목을 클릭 할 때마다 기본보기에 연결된 모든 하위 항목을 제거하고 해당 메뉴 항목과 관련된보기/컨트롤러를로드하고 기본보기에 첨부합니다. 내 질문 : 이것으로 충분합니까? 제거 된 뷰에 내부의 요소에 연결된 이벤트 리스너가있는 경우 해당 리스너가 너무 정리 되었습니까? 새 뷰/컨트롤러를로드하거나 필요하지 않은 상태에서 인스턴스화 한 각 컨트롤러에 대한 참조를 유지하고 controller.destroy() 및 controller.off()를 호출 했습니까?티타늄 : 윈도우가 아닌보기와 연결된 컨트롤러를 올바르게 정리하십시오.

윈도우가없는보기에서는 UI.View 요소를 "닫을 수 없습니다 (창만)"수 없으므로 정리 기능을 "onclose"이벤트에 첨부 할 수 없으므로 묻습니다.

티타늄에서 이러한 상황을 처리하는 올바른 방법은 무엇입니까?

답변

0

이벤트 리스너는 특히 Ti.APP.addEventListeners를 사용하여 참조를 유지할 수 있습니다.

따라서 모든 하위보기를 제거 할 때 이벤트 리스너를 수동으로 제거해야합니다.

+0

그러나 제거중인 뷰의 내부 요소에만 이벤트 수신기를 연결하면 살아남을 수 있습니까? 도움을 주셔서 감사합니다 – revy

+0

컬렉션이나 모델에 바인딩하지 않으면 살아남지 못할 것입니다. 다음과 같은 코드로 테스트 할 수 있습니다 : 이벤트 리스너에 Ti.App.info ("some words")를 추가하고 닫은 다음 다시 열거 나 "some words"가 몇 번 표시되는지 확인하십시오. , 닫은 뷰의 이벤트 리스너가 아직 있음을 의미합니다. – jack

+0

좋아, 이제 알았어, 고마워! – revy

관련 문제