나는 간단한 탐색 계층 구조를 가지고있다. 다음 문 (컨트롤러 1) 실행되는 경우가있어, 이제있는 navigationController popToRootViewController 및 viewWillDisappear
- (void)viewWillDisappear:(BOOL)animated {
NSLog(@"%s", __FUNCTION__);
if (![self.navigationController.viewControllers containsObject:self]) {
// View has been popped! Important to distinguish between view popping and tab switching.
// If parent view controller is active, pass a message.
if (_refParentViewController && !_isSearchViewController) {
_refParentViewController.valueX = @"xyz";
}
}
[super viewWillDisappear:animated];
}
:
내 viewWillDisappear 이런 식으로 뭔가를 보이는 결과
[self.navigationController popToRootViewControllerAnimated:NO];
는, 나는 충돌로 인해 얻을 _refParentViewController는 할당 취소 된 인스턴스입니다 (이 시점에서). _refParentViewController가 유효한지 어떻게 확인할 수 있습니까? 뷰 컨트롤러/뷰가 순서대로 파괴 될 것이라고 생각했지만 특정 순서가없고 컨트롤러 2가 컨트롤러 3보다 먼저 사라지는 것으로 보입니다.
확인할 수있는 것은 retainCount
인데 그 것이 맞는지 확실하지 않습니다. 좋은 생각.
좋은 지적. 제안 된 솔루션이 효과가있었습니다. 감사. – Mustafa