Ari*_*ang 11 iphone ipad ios ios5
我使用iOS5故事板,而我的初始视图控制器是TabBarController
,view1和view2&view3&view4有四种关系,那么,我如何获得view3的视图控制器?
我试过了:
[[[[self.window.rootViewController navigationController] tabBarController] viewControllers] objectAtIndex:2];
Run Code Online (Sandbox Code Playgroud)
但它不起作用......
Dim*_*ima 31
你说你的初始(根)视图控制器是一个UITabBarController,但你指的是一个带有带标签栏控制器的导航控制器的视图控制器.您是否在视图控制器层次结构中混淆了?
编辑:
如果你的根视图控制器实际上只是一个标签栏控制器,你想在这里得到第三个标签是代码:
[[((UITabBarController *)self.window.rootViewController) viewControllers] objectAtIndex:2];
Run Code Online (Sandbox Code Playgroud)
[self.tabBarController setSelectedIndex:2];
Run Code Online (Sandbox Code Playgroud)
试试这种方式
在任何视图控制器中
YourViewController *yourViewController= (YourViewController*) [self.tabBarController.viewControllers objectAtIndex:3];
Run Code Online (Sandbox Code Playgroud)
这将返回您的视图控制器对象.将其存储到您的视图控制器,您就可以使用它了.跑去吧
斯威夫特4.0
let viewC = self?.tabBarController.viewControllers.first // will give single Navigation Controller on index 0
let viewC = self?.tabBarController?.viewControllers// will give array of Navigation Controller
Run Code Online (Sandbox Code Playgroud)
此外,您可以检查 Visible ViewController
if let nav = viewC as? UINavigationController {
if nav.visibleViewController is YourViewControllerName{
// Do Code
}
}
Run Code Online (Sandbox Code Playgroud)