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

时间:2015-02-20 04:50:22

标签: ios objective-c uinavigationcontroller uitabbarcontroller appdelegate

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

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

1 个答案:

答案 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]]) {
相关问题