두 개의보기 컨트롤러 : MyParentViewController
및 MyChildViewController
이 있습니다._existingView 메시지가 할당 해제 된 개체로 전송되면 iPhone 회전으로 인해 충돌이 발생합니다.
신청서는 MyParent
으로 시작됩니다.
MyParent
>MyChild
내가 NSLog(@"%p", self)
으로 MyChild
의 오브젝트 ID를 기록 :
2009-11-20 05:08:29.305 MyApp[2213:207] MyChildViewController instance: 0x36afc20
언제과 같이 체인이되도록 I는 탐색 스택의 최상위에 MyChild
제어기 밀어 MyChild
에서 뒤로 버튼을 누르면 스택에서 MyChild
이 튀어 나와 MyParent
으로 돌아옵니다. 다음 오류 메시지와 함께
MyParent
를 보는 동안 나는 아이폰을 회전
2009-11-20 05:08:37.671 MyApp[2213:207] *** -[MyChildViewController _existingView]: message sent to deallocated instance 0x36afc20
나는 MyChildViewController
에는 _existingView
방법 또는 인스턴스 변수가 없습니다.
스택에서 MyChild
이 튀어 나오면 내비게이션 컨트롤러가이를 해제하고 nil
으로 설정되고 전송 된 메시지가 무시된다는 것을 전제로합니다. 그것은 분명히 여기서 일어나지는 않지만.
아무도 내 응용 프로그램이 회전시 충돌되는 이유가 있습니까?
_existingView
메시지를 MyChild
(으)로 보내는 것을 확인하는 방법이 있습니까? 나는이 문제를 해결 한 수 생각 2
MyChildViewController *_myChildViewController = [[MyChildViewController alloc] initWithNibName:@"MyChildViewController" bundle:nil];
_myChildViewController.managedObjectContext = self.managedObjectContext;
_myChildViewController.title = [_xyz name];
[self.navigationController pushViewController:_myChildViewController animated:YES];
UIBarButtonItem *_backButton = [[UIBarButtonItem alloc] initWithTitle:NSLocalizedString(@"MyChildViewBackBarButtonItemTitle", @"") style:UIBarButtonItemStyleDone target:nil action:nil];
self.navigationItem.backBarButtonItem = _backButton;
[_backButton release];
[_myChildViewController release];
편집 :
편집
여기 스택에 MyChild
을 밀어 코드입니다. Interface Builder를 통해 뷰 컨트롤러 nib에 UISearchDisplayController
을 추가했습니다. MyChild
컨트롤러는이 방법에 전무에 IBOutlet
인스턴스를 설정하는 것이 일반적으로 충분하다 생각 -viewDidUnload
을 보낼 때
원래, 나는 nil
로 설정. 하지만 내 검색 디스플레이 컨트롤러에는 충분하지 않은 것으로 보입니다. 내가 이것을 -dealloc
에서 공개 할 때 나는 충돌을 얻지 못한다. 이것은 버그입니까, 궁금하거나 기대하는 행동입니까?
childViewController를 밀 때 코드가 정확히 어떻게 생깁니 까? childViewController가 parentViewController 클래스의 필드입니까? –