如何在iOS中找到当前的视图控制器

时间:2014-08-28 01:59:31

标签: ios viewcontroller

我的应用程序的入口是UINavgationViewController。根视图控制器是UITabBarViewControllerUITabBarViewController包含一些正常的UIViewController。这些控制器可以调用:

self.navgationController.pushViewcontroller(otherViewController, animated:true);

但是,我在后台运行另一个线程。如何知道主屏幕上当前显示哪个视图控制器?

我尝试拨打UIApplication.keywindows.rootviewcontroller,但会返回UINavgationViewController

UINavgationViewController.viewcontrollers.count == 1,它只包含UITabBarViewController

3 个答案:

答案 0 :(得分:0)

我认为您可以从标签栏中获取所选的视图控制器:

navigationController.tabBarController.selectedViewController

答案 1 :(得分:0)

尝试在每个视图控制器类中使用viewDidAppear方法

- (void)viewDidAppear:(BOOL)animated
{
        NSLog(@"Currennt view:%@",self);
}

self返回ViewController类的名称

答案 2 :(得分:0)

AppDelegate *appDelegate = (AppDelegate *)[[UIApplication sharedApplication] delegate];


NSLog(@"%@",appDelegate.navController.topViewController);

您可以获得推送的最高Controller