我的应用程序的入口是UINavgationViewController
。根视图控制器是UITabBarViewController
。 UITabBarViewController
包含一些正常的UIViewController
。这些控制器可以调用:
self.navgationController.pushViewcontroller(otherViewController, animated:true);
但是,我在后台运行另一个线程。如何知道主屏幕上当前显示哪个视图控制器?
我尝试拨打UIApplication.keywindows.rootviewcontroller
,但会返回UINavgationViewController
。
UINavgationViewController.viewcontrollers.count == 1
,它只包含UITabBarViewController
。
答案 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
。