我怎样才能从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];
- 为什么我不能移动iOS Storyboard元素?
- 在UIImagePickerController中隐藏loggingbutton
- 如何动态填充Tab Bar控制器的标签栏。 (在swift中 – iOS 9)
- Swift初学者:Storyboardless应用程序-我删除了Storyboard,并重用了更多Swift代码和样式!
- 来自AppDelegate.m的当前ViewController类名的NSLog
- 父项目中的预处理器macros用于子项目
- iOS的topLayoutGuide使用iOS 7和iOS 8之间的子视图控制器的区别
- NSNotificationCenter Swift 3.0在键盘上显示和隐藏
- 从UITextView中获取图像