我想知道如果我有一个UITabBarController
我可以找到当前的视图控制器,并且在那个TabBarController中我有4个不同的UINavigationController
然后那个NavigationController显然有一堆视图控制器。在我的应用程序委托中,我正在尝试查找此信息,以便我可以停止显示应用程序内推送通知。所以我希望做类似的事情:
if (self.currentViewController != self.chatViewController) {
//Show the notification everywhere else except here(here being self.chatViewController)
}
答案 0 :(得分:3)
尝试这样做:
UITabBarController *tabBarControler = (UITabBarController*)self.window.rootViewController;
UINavigationController *navController = [[tabBarControler viewControllers] objectAtIndex:<selected_index>];
NSArray *navViewControllers = [navController viewControllers];
您可以像这样检查当前的viewController。
if (navController.topViewController != self.chatViewController) {
//Show the notification every else except here(here being self.chatViewController)
}
由@kylecman编辑
我最终做的是使用tabbarcontroller和导航控制器实例而不使用数组(没有找到需要)
然后我为viewController的类
准备了一个IF语句if (![navController.topViewController isKindOfClass:[ChatView class]] && ![navController.topViewController isKindOfClass:[MessagesViewController class]]) {