탭 모음 기반 응용 프로그램 (iOS 7.1 SDK)이 있습니다. 사용자가 처음 앱을 시작할 때 로그인 화면을 보여주고 싶습니다. View Controller Containment (Tab Bar Controller의 첫 번째보기 컨트롤러에서 호출 됨)를 사용하기로 결정했습니다.UITabBarController에 하위보기를 추가해도 viewWillAppear가 호출되지 않습니다.
LoginViewController *vc = [LoginViewController new];
[self.tabBarController addChildViewController:vc];
[vc didMoveToParentViewController:self.tabBarController];
[self.tabBarController.view addSubview:vc.view];
그러나 몇 가지 문제가 있습니다. 보기는 일반적으로 보이지만, LoginViewController viewWillAppear 및 viewDidAppear는 절대로 호출되지 않습니다. 모든 뷰 라이프 사이클 메소드 (viewDidLoad, viewWillAppear, viewDidAppear)에서이 코드를 사용하려고 시도했지만 운이 없었습니다. 내가하려는 일을 성취 할 수있는 다른 방법이 있다는 것을 알고 있습니다. 예를 들어 탭 컨트롤러의 첫 번째보기 컨트롤러에 자식 컨트롤러를 추가하고 tabbar를 숨 깁니다.이 기능은 잘 작동하며 viewWillAppear 및 viewDidAppear가 정상적으로 호출됩니다. 하지만이 때문에 나는 더 궁금해합니다 - 왜 탭 컨트롤러에 자식보기 컨트롤러를 추가하는 것이 예상대로 작동하지 않습니까?
메소드를 호출하려면 뷰 컨트롤러를 표시하거나 밀어야합니다. 보기를 하위보기로 추가하는 것은 작동하지 않습니다. – ZeMoon