// // //

大钟威武

从白痴到大师的点滴积累

点击button实现Storyboard中TabBar Controller的tab切换

| Comments

环境和想要实现的功能

在Storyboard上,TabBarController作为rootViewController,此时想要在某个tab的VC中,点击个button,跳转到另外的tab上。如下图所示:

上图中,在第一个Tab上,点击“点击此处,去新建和管理提醒”,会跳转到第二个Tab,显示全部提醒的列表,来新建和管理提醒。

实现代码:

1
2
    AppDelegate *thisAppDelegate = [[UIApplication sharedApplication] delegate];
    [(UITabBarController *)thisAppDelegate.window.rootViewController setSelectedIndex:1];

分析: 我们在用代码创建app的时候,要在appDelegate中,去指定rootViewController。【不熟悉代码创建app的同学可以阅读这篇学习使用code实现iOS界面,在这篇blog中,推荐的IOS开发之纯代码界面—基本控件使用篇,非常适合新手学习code实现界面】在用Storyboard创建app的时候,虽然不用我们自己去指定rootViewController,但原理是一样的。

Storyboard中,app的入口箭头指向的VC,通常就是rootViewController。在这个例子中,就是UITabBarController。

通过

1
[[UIApplication sharedApplication] delegate]

得到自己这个appDelegate,通过调用

1
(UITabBarController *)thisAppDelegate.window.rootViewController

就得到了这个UITabBarController(的实例)。再使用UITabBarController(的实例)方法setSelectedIndex,去设定,要跳转到哪个Tab。

1
[(UITabBarController *)thisAppDelegate.window.rootViewController setSelectedIndex:1]

就是跳转到index为1的Tab,也就是第二个Tab了。

Comments