我怎样才能从AppDelegate TabBarController的ViewController?

我使用iOS5的故事板,我的初始视图控制器是TabBarController ,有四个关系view1&view2&view3&view4,所以,我怎样才能得到view3的视图控制器?

我试过了:

 [[[[self.window.rootViewController navigationController] tabBarController] viewControllers] objectAtIndex:2]; 

但是这不起作用…

你说你的初始(根)视图控制器是一个UITabBarController,但是你指的是一个视图控制器与导航控制器与标签栏控制器。 你在视图控制器层次结构中混淆了吗?

编辑:

如果你的根视图控制器实际上只是一个标签栏控制器,你想在这里得到第三个选项卡是代码:

 [[((UITabBarController *)self.window.rootViewController) viewControllers] objectAtIndex:2]; 
 [self.tabBarController setSelectedIndex:2]; 

试试这个方法

在任何视图控制器

  YourViewController *yourViewController= (YourViewController*) [self.tabBarController.viewControllers objectAtIndex:3]; 

这将返回你的视图控制器对象。把它交给你的视图控制器,你就可以使用它了。 跑,走

  UIViewController *loginViewController=self.window.rootViewController; UITabBarController *controller=loginViewController.tabBarControllerObj; UIViewController *selectedController=controller.selectedViewController; 

从这你会得到选定的视图控制器。

为了让所有的视图控制器只是replace

 NSArray *viewControllers = [controller viewControllers];