2010-05-27 4 views
2

나는 약간의 정보를 묻는 UINavigationController를 가지고 있으며 사용자는 끝날 때까지 입력 된 모든 데이터를 수락하거나 취소 할 수 있습니다. 그들은 항상popToRootViewControllerAllimated 및 dealloc 모든보기

[UINavigationController popToRootViewControllerAnimated:] 

이 문제는, 내가 해제하는 방법을/모든 뷰를 할당 해제됩니다 사용하여 첫 번째보기로 이동합니다으로

그들이 선택 느릅 나무의 옵션을, 중요하지 않습니다?

예를 들어 뷰 1에서 시작하고 끝이 뷰 8 일 때, 8에서 직접 1로 이동하면 뷰 2,3,4,5,6,7,8을 어떻게 풀 수 있습니까?

덕분에,

관련,

미터.

답변

3

내비게이션 컨트롤러가 메모리를 처리 할 수있게 허용합니다. 컨트롤러가 스택에 푸시되고 제거시 해제됩니다. 따라서 컨트롤러의 소유권을 다른 곳으로 가져 가지 않으면 네비게이션 컨트롤러에서 자동으로 해제 된 후 자동으로 할당이 취소됩니다. 기본적으로 컨트롤러를 다음과 같이 푸시해야합니다.

SomeControllerType* controller = [[SomeControllerType alloc] init]; 
[navigationController pushViewController:controller animated:animated]; 
[controller release]; 
+0

예, 저는 장비를 사용하여 할당하는 중입니다. 어쩌면 할당 취소 할 수없는 일부 개체가있을 수 있으며 그 이유 때문에 뷰가 여전히 메모리에 남아 있습니다. 설명 주셔서 감사합니다. 엠. – mongeta

+0

컨트롤러가 할당 해제되지 않거나 다른 오브젝트가 메모리에 남아 있다는 것을 의미합니까? – Vladimir

+0

확실하지 않은 경우, 계기를 사용하여 메모리 누수가 전혀 표시되지 않지만 모든보기에 대해 20 회가 지나면 앱이 느리고 느리게 실행됩니다. 계측기를 다시 확인해야하므로 컨트롤러가 자동으로 해제되어야 함을 알게되었습니다. 자동으로 ... – mongeta