첫째, 당신은 UITabBarController가에 대한 참조를 가질 필요가 null입니다. IB에서 초기보기 컨트롤러로 설정하면 매우 쉽습니다. 스토리 보드를 열고 UITabBarController 왼쪽에있는 작은 회색 화살표를 찾으십시오. 그렇다면, 단순히 이렇게 : 당신은 또한 직접 TabBarController를 조회 할 수 있습니다
[myTabBarController objectAtIndex:index];
:
NSLog(@"Selected view controller class type: %@, selected index: %d", [myTabBarController selectedViewController], [myTabBarController selectedIndex]);
당신이 UITabBarController가를 사용하는 경우
UITabBarController *myTabBarController;
if ([_window.rootViewController isKindOfClass:[UITabBarController class]]) {
NSLog(@"This window's rootViewController is of the UITabBarController class");
myTabBarController = (UITabBarController *)_window.rootViewController;
}
, 당신은을 통해 그 자식 UIViewControllers에 대한 참조를 얻을 수 있습니다
프로그래밍 방식 또는 IB (가장 왼쪽 탭 = 인덱스 0)에 관계없이 0부터 시작하는 인덱싱 체계는 탭의 순서를 따릅니다. 당신이 당신의 UITabBarController가에 대한 참조를 일단
가, 나머지는 아주 간단하다
LoginViewController* myLoginViewController;
if(![[myTabBarController selectedViewController] isKindOfClass:[LoginViewController class]){
//If the currently selected ViewController is NOT the login page
//Show timeout alert
}
는 AppDelegate에 근무하는 동안, 내가 viewDidAppear의 로그인 화면을 이동 버그를 가진 후 같은 일을하고 결국 테스트 (릴리스)에서 때때로 실패합니다. 나는 이걸 처음 보았 더라면 좋았을 텐데, 그 대답은 아주 좋았어. 무슨 일이 있었는지, 나는 로그인을위한 독립적 인 스토리 보드와 실제 앱의 메인 스토리 보드를 가지고있다. 좋은 답변 주셔서 감사합니다 ... –