首先,您需要有一个对 UITabBarController 的引用。如果在 IB 中将其设置为您的初始视图控制器,这将非常容易。您可以通过打开情节提要并在 UITabBarController 左侧寻找一个灰色的小箭头来检查这一点。如果是这样,那么只需执行以下操作:
UITabBarController *myTabBarController;
if ([_window.rootViewController isKindOfClass:[UITabBarController class]]) {
NSLog(@"This window's rootViewController is of the UITabBarController class");
myTabBarController = (UITabBarController *)_window.rootViewController;
}
如果您使用的是 UITabBarController,您可以通过以下方式获取对其子 UIViewControllers 的引用:
[myTabBarController objectAtIndex:index];
您也可以直接查询您的 TabBarController:
NSLog(@"Selected view controller class type: %@, selected index: %d", [myTabBarController selectedViewController], [myTabBarController selectedIndex]);
从零开始的索引方案遵循您设置的选项卡的顺序,无论是通过编程还是通过 IB(最左边的选项卡 = 索引 0)。
一旦你有了对你的 UITabBarController 的引用,剩下的就很简单了:
LoginViewController* myLoginViewController;
if(![[myTabBarController selectedViewController] isKindOfClass:[LoginViewController class]){
//If the currently selected ViewController is NOT the login page
//Show timeout alert
}