질문은 모두 제목에 있습니다. 내 응용 프로그램에서 하나의보기가 언로드되면 일부 정리 코드를 실행하려고합니다. 그렇게 할 수 있습니까? 그렇다면 요격해야 할 사건은 무엇입니까?Iphone :보기가 언로드 될 때 어떤 이벤트가 호출됩니까?
답변
-viewDidUnload() 또는 -viewWillDisappear() 귀하의 디자인에 따라. 아마도 viewDidUnload()를 원할 것입니다.
또한 사용중인 SDK에 따라 다릅니다. iphone-sdk 3.x를 사용하고 있다면 viewDidUnload
이 호출됩니다. 그렇지 않으면 호출되지 않습니다. 2.x 이상에서는 viewWillDisappear
이 호출됩니다. 이제 뷰가 언로드 된 경우에만 메서드를 호출하려는 경우 dealloc
에서 호출 할 수 있지만 매우 신뢰할 수는 없습니다.
viewDidUnload는 거의 호출되지 않습니다. 예를 들어 뷰 컨트롤러가 단순히 할당 해제되면 viewDidUnload는 호출되지 않습니다. 부모 뷰가 뷰 컨트롤러의 뷰를 언로드하고 뷰 컨트롤러 자체가 할당 해제되지 않은 경우에만 호출됩니다. –
viewDidUnload 또는 viewWillDisappear를 살펴보고 싶을 것입니다. 아마도 viewDidUnload를 사용할 정리를 위해 dealloc 메소드에서 정리를 수행하는 것이 좋습니다. 애플의 문서에서
다음 컨트롤러의 뷰가 메모리에서 해제 될 때 호출
viewDidUnload.
- (void)viewDidUnload
토론이 방법은 방법의 viewDidLoad에 상대라고한다. 보기 컨트롤러 이보기를 해제하고 해당보기에 연결된 개체가 메모리를 확보해야하는 경우 메모리가 부족한 동안 조건이 호출됩니다. 보기 컨트롤러가 종종 뷰와 다른 뷰 관련 개체, 에 대한 참조를 저장하기 때문에 그렇게 그들을 위해 메모리가 가 재생 될 수 있음을 해당 개체 에 을 양도합니다 소유권에이 방법을 사용합니다. 이 작업은 객체에 대해서만 수행해야하며, 나중에 을 viewDidLoad 메서드 또는 응용 프로그램의 다른 부분에서 쉽게 다시 만들 수 있습니다. 이 메서드를 사용하여 사용자 데이터를 해제하거나 을 쉽게 다시 만들 수없는 기타 정보를 사용하지 마십시오.
일반적 가 함께 IBOutlet 키워드를 포함하고, 인터페이스 빌더를 사용하여 구성된 것을 변수 또는 속성 인 출구 를 사용하여 객체에 대한 뷰 컨트롤러 저장 참조. 보기 컨트롤러는 viewDidLoad 메서드에서와 같이 프로그래밍 방식으로 을 만드는 개체에 대한 포인터를 저장할 수도 있습니다. 선호하는 방법 (콘센트에있는 객체 포함)은 에 해당 액세스 메소드를 사용하여 객체의 값을 nil로 설정하는 것입니다. 그러나 지정된 개체에 접근 자 메서드가없는 경우 개체를 명시 적으로 해제해야 할 수 있습니다. 메모리 관리 방법에 대한 자세한 내용은 메모리 관리 프로그래밍 가이드 for Cocoa를 참조하십시오.
이 메서드가 호출 될 때까지 뷰 속성은 nil입니다.
특별 고려 사항 전망 및 기타 사용자 정의 개체에 대한보기 컨트롤러 저장 참조, 또한 자사의 dealloc 메소드에서 안전하게 이러한 개체의 소유권을 포기에 대한 책임 경우. 당신이 이 메소드를 구현하지만 아이폰 OS 2.x를 위해 응용 프로그램을 작성하는 경우, 귀하의 의 dealloc 방법은 각 객체를 해제해야합니다뿐만 아니라 슈퍼를 호출 전에 무기 호에 해당 개체에 참조를 설정해야합니다.
viewWillDisappear는 : 해당 뷰가 가보기에서 숨겨진 적용, 해고, 또는 다른 되려고보기 컨트롤러를 통지합니다. YES 뷰의 실종 되 애니메이션 경우
- (void)viewWillDisappear:(BOOL)animated
파라미터 애니메이션.
토론이 방법은 보기에서 제거되거나 다른보기로 덮여 보이는보기에 대한 응답으로 에서 호출됩니다. 이 메서드는 뷰 이 실제로 제거되거나 덮여지기 전에 호출되며 애니메이션이 구성되기 전에 이 구성됩니다.
서브 클래스는이 방법 을 무시하고 편집 변경 사항을 적용하는 데 사용할 수 있습니다, 뷰 의 첫 번째로 반응 상태를 사임, 또는 기타 관련 작업을 수행합니다. 예를 들어이 메서드를 사용하면 뷰가 처음 표시되었을 때 viewDidDisappear : 메서드에서 변경된 방향 또는 상태 표시 줄 스타일 의 변경 내용을 되돌릴 수 있습니다. 이 메소드를 으로 대체하는 경우 구현시 어느 지점에서 으로 super를 호출해야합니다.
- 1. 보기가 완전히로드가 완료되면 어떤 함수가 호출됩니까?
- 2. Magento 이벤트 (어떤 이벤트가 색인에서 호출됩니까?)
- 3. ActiveX 컨트롤을 언로드 할 때 IE에서 어떤 이벤트가 발생합니까?
- 4. iPhone 앱이 종료되면 어떤 메소드가 호출됩니까?
- 5. MEF - 플러그인이로드/언로드 될 때 알림
- 6. DOM 창 언로드 이벤트가 안정적입니까?
- 7. ASP.NET에서 페이지가 클라이언트 브라우저에로드 될 때 어떤 이벤트가 발생합니까?
- 8. 어떤 종류의 프로그램이 호출됩니까?
- 9. JFrame 크기를 조정할 때 어떤 메소드가 호출됩니까?
- 10. iPhone이 잠겨있을 때 어떤 메소드가 호출됩니까?
- 11. 루비 : 어떤 방법이 호출됩니까?
- 12. 어떤 함수가 호출됩니까? Control.ShouldSerializeVisible
- 13. 닫을 때 childwindow 언로드
- 14. 보기가 활성화되면 어떤 방법을 재정의합니까?
- 15. 프로세스가 생성 될 때 시스템 이벤트가 있습니까?
- 16. 어떤 활동 방법이 먼저 호출됩니까?
- 17. dte.Solution.SolutionBuild.StartupProjects가 변경 될 때 트리거되는 이벤트가 있습니까?
- 18. 새 이벤트가 Windows에 기록 될 때 감지합니다.
- 19. 개체가 복제 될 때 이벤트가 고아가됩니까?
- 20. Google지도 컨트롤이로드 될 때 이벤트가 있습니까?
- 21. 보기가 MAAttachedWindow와 함께 표시 될 때 NSView 내용 새로 고침
- 22. 보기가 유효한지 확인하는 방법 iphone
- 23. NIB에서 인스턴스화 할 때 UIView의 어떤 메소드가 호출됩니까?
- 24. 보기가 끝날 때 스크롤
- 25. UIScrollView가 maximumZoomScale에 도달하면 어떤 메소드가 호출됩니까?
- 26. 응용 프로그램 풀이 IIS에서 재활용 될 때 Application_End가 호출됩니까?
- 27. WPF DataTemplate은 언로드 될 때 일부 종속성 속성을 다시 설정합니다.
- 28. ASI-HTTP 요청이 시간 초과 될 때 어떤 대리자 메서드가 호출됩니까?
- 29. 서브 모듈 업데이트에서 어떤 githook이 호출됩니까?
- 30. 파일이로드 될 때마다 this.init = function()이 호출됩니까?
viewDidUnload()는 뷰 컨트롤러가 메모리 경고를 받으면 뷰가 표시되지 않고 기본 경고 방식으로 메모리 경고를 처리합니다 (부모 클래스로 전달). 따라서 viewDidUnload()는 실제로 수행해야하는 정리 작업을 수행하기에 좋지 않습니다. dealloc에 대한 작업이 필요하거나 중요한 리소스를 정리하기 위해 메서드를 추가해야 할 수도 있습니다. –