표준 UISplitViewController
을 사용하는 iOS 범용 앱이 있습니다. 최근의 변화 마지막에게 후왜 self.splitViewController가 갑자기 viewDidLoad에서 nil이되지 않습니까?
- (void)viewDidLoad
{
[super viewDidLoad];
self.detailViewController = (CustomViewController *)[[self.splitViewController.viewControllers lastObject] topViewController];
}
:
내가 응용 프로그램 작업을 시작 거의 이후는 오른쪽에 상세 뷰 컨트롤러 왼쪽에있는 마스터 뷰 컨트롤러를 연결하는 장소에 다음 코드를했다 라인이 작동을 멈추고 일부 기능이 깨졌습니다. 이 문제의 이유는이 시점에서 self.splitViewController
이 nil
입니다. 마지막 줄을 viewWillAppear:
으로 옮기면 문제가 해결되지만 IMHO가 완전히 올바른 위치는 아닙니다.
변경 사항은 실제로 이와 관련이 없으며 컨트롤러 계층이나 내가 사용하는 스토리 보드를 변경하지 않았습니다. 그래서 나는이 행동이 어디에서 유래했는지 설명 할 수 없다. 어떤 힌트를 주시면 감사하겠습니다.
'viewDidLoad'에서'nil'을 검사하는 것은 도움이되지 않습니다. 컨트롤러를 수동으로 초기화하는 것뿐입니다. 스토리 보드를 사용할 때주의해야 할 사항이 아닙니다. 하지만 getter에서 [[self.splitViewController.viewControllers lastObject] topViewController]'를 호출 할 수 있습니다. – Koraktor