2009-12-12 7 views

답변

1

-viewDidUnload() 또는 -viewWillDisappear() 귀하의 디자인에 따라. 아마도 viewDidUnload()를 원할 것입니다.

+1

viewDidUnload()는 뷰 컨트롤러가 메모리 경고를 받으면 뷰가 표시되지 않고 기본 경고 방식으로 메모리 경고를 처리합니다 (부모 클래스로 전달). 따라서 viewDidUnload()는 실제로 수행해야하는 정리 작업을 수행하기에 좋지 않습니다. dealloc에 ​​대한 작업이 필요하거나 중요한 리소스를 정리하기 위해 메서드를 추가해야 할 수도 있습니다. –

1

또한 사용중인 SDK에 따라 다릅니다. iphone-sdk 3.x를 사용하고 있다면 viewDidUnload이 호출됩니다. 그렇지 않으면 호출되지 않습니다. 2.x 이상에서는 viewWillDisappear이 호출됩니다. 이제 뷰가 ​​언로드 된 경우에만 메서드를 호출하려는 경우 dealloc에서 호출 할 수 있지만 매우 신뢰할 수는 없습니다.

+1

viewDidUnload는 거의 호출되지 않습니다. 예를 들어 뷰 컨트롤러가 단순히 할당 해제되면 viewDidUnload는 호출되지 않습니다. 부모 뷰가 뷰 컨트롤러의 뷰를 언로드하고 뷰 컨트롤러 자체가 할당 해제되지 않은 경우에만 호출됩니다. –

1

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를 호출해야합니다.

관련 문제