탐색 기반의보기 컨트롤러가 있고보기 컨트롤러에서 위쪽 탐색 모음을 숨기고 사용자 지정 UIView를 탐색 모음으로 사용했습니다.UIViewController 및 UIview dealloc이 호출되지 않습니다.
UIView 막대에는 뒤로 단추가 있으며 뒤로 단추가있는 경우보기 컨트롤러와 통신하기 위해 대리자 메서드 (프로토콜 선언)를 사용합니다.
내 CustomNavigation Bar에 위임자를 사용합니다. id delegate;
메인 뷰 컨트롤러에서
은 내가 탐색 모음 내가 내가 ViewControllers의 할당 해제에서이 줄을 해제 위임topBar = [[TopNavigationBar alloc] initWithFrame:CGRectMake(0, 0, 480, 40)];
topBar.lblTitle.text = @"Shop";
topBar.delegate = self;
을 설정 할당 할 때.
이제 뒤로 버튼을 누르면 위임 메소드를 사용하여 주 ViewController에서 popViewController를 호출합니다.
//in Custom Bar
-(void)ButtonPressed {
[delegate TopNavigationBarBackButtonPressed];
}
//In View COntroller
-(void)TopNavigationBarBackButtonPressed {
[self.navigationController popViewControllerAnimated:YES];
}
는 지금의 ViewController는 poped되고 제어는 이전의 ViewController로 이동하지만, 할당 해제 내가 잘못하고있는 중이 야 무엇의 ViewController와 UIView의
모두에서 해고되지 않는 이유는 무엇입니까?
어떤 생각 사람이어야한다? retainCount가 0이 아닌 경우 dealloc이 호출되지 않습니다. 그러나 어디서나 viewController를 유지하지 않습니다. 스택에 푸시 한 후 [vewController release]를 수행합니다. 그래서 제가 생각할 수있는 유일한 이유는 제가 작성한 맞춤 프로토콜입니다. 나는 그것을 풀어야합니까? 나는 재산에서 대리인을 보유합니다. 하지만 dealloc에서 해제한다고해도 호출되지 않습니다. 멈췄다 !!! –