在UINavigation Controller中获取UITabBarController中View Controller的currentViewController

Get currentViewController of View Controller in UITabBarController in UINavigation Controller

我想知道如果我有一个 UITabBarController 并且在那个 TabBarController 中我有 4 个不同的 UINavigationController,那么 NavigationController 显然有堆栈视图控制器。在我的应用程序委托中,我试图找出此信息,以便我可以停止显示应用程序内推送通知。所以我想做类似的事情:

if (self.currentViewController != self.chatViewController) {
   //Show the notification everywhere else except here(here being self.chatViewController)
}

尝试这样做:

    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 的 class

准备了一个 IF 语句
if (![navController.topViewController isKindOfClass:[ChatView class]] && ![navController.topViewController isKindOfClass:[MessagesViewController class]]) {