iOS:删除storyBoard,纯代码实现UITabBarController的视图切换功能

  storyboard是一个很强大的编写代码的辅助工具,可以帮助布局多个视图之间的联系,既直观又能减少代码量;但是,作为一个程序员,在不使用storyboard的情况下,纯代码编写是必须的技能。

下面就用纯代码实现纯代码实现UITabBarController的视图切换功能,咱就实现三个视图之间的转换吧,代码不多,容易看的明白。

步骤:

1、删除storyboard故事板和UIViewController

2、创建三个控制器类,均继承自UIViewController,分别为FirstViewController、SecondViewController、ThreeViewController

3、为了便于区分跳转的视图,分别在上面的三个控制器类中设置它们各自视图的颜色。

4、在AppDelegate应用程序代理类中进行这三个控制器的创建、UITabBarController的创建、window的创建。最后进行代码的整合即可。

 

文件截图如下:

演示结果如下:

       

 

代码如下:

在FirstViewController类中只设置视图颜色:

1 - (void)viewDidLoad {
2     [super viewDidLoad];
3     // 设置视图颜色
4     self.view.backgroundColor = [UIColor redColor];
5 }

在SecondViewController类中只设置视图颜色

1 - (void)viewDidLoad {
2     [super viewDidLoad];
3      // 设置视图颜色
4     self.view.backgroundColor = [UIColor greenColor];
5 }

在ThreeViewController类中只设置视图颜色

1 - (void)viewDidLoad {
2     [super viewDidLoad];
3      // 设置视图颜色
4     self.view.backgroundColor = [UIColor purpleColor];
5 }

在AppDelegate应用程序代理类中,代码才是重点,如下:

 1 #import "AppDelegate.h"
 2 #import "FirstViewController.h"
 3 #import "SecondViewController.h"
 4 #import "ThreeViewController.h"
 5 
 6 @interface AppDelegate ()
 7 
 8 @end
 9 
10 @implementation AppDelegate
11 
12 
13 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
14     // 创建window并设置大小
15     self.window = [[UIWindow alloc]initWithFrame:[[UIScreen mainScreen]bounds]];
16     
17     //创建UITabBarController
18     UITabBarController *tabBarController = [[UITabBarController alloc]init];
19     
20     //创建三个控制器,并且加入tabBarController中
21     FirstViewController *firstVC = [[FirstViewController alloc]init];
22     //设置标签栏标题
23     firstVC.tabBarItem.title = @"first";
24     //设置系统自带的图标
25     firstVC.tabBarItem = [[UITabBarItem alloc]initWithTabBarSystemItem:UITabBarSystemItemFavorites tag:0];
26     //设置badgeValue
27     firstVC.tabBarItem.badgeValue = @"10";
28     
29     SecondViewController *secondVC = [[SecondViewController alloc]init];
30     secondVC.tabBarItem.title = @"second";
31     //设置系统自带的图标
32     secondVC.tabBarItem = [[UITabBarItem alloc]initWithTabBarSystemItem:UITabBarSystemItemDownloads tag:1];
33     //设置badgeValue
34     secondVC.tabBarItem.badgeValue = @"5";
35     
36     
37     ThreeViewController *threeVc = [[ThreeViewController alloc]init];
38     threeVc.tabBarItem.title = @"three";
39     //设置系统自带的图标
40     threeVc.tabBarItem = [[UITabBarItem alloc]initWithTabBarSystemItem:UITabBarSystemItemBookmarks tag:2];
41     
42     //[tabBarController addChildViewController:firstVC];
43     //[tabBarController addChildViewController:secondVC];
44     //[tabBarController addChildViewController:threeVC];
45     tabBarController.viewControllers = @[firstVC,secondVC,threeVc];
46     
47     //将tabBarcontroller设置为根控制器
48     self.window.rootViewController = tabBarController;
49     
50     //window接受用户响应并显示
51     [self.window makeKeyAndVisible];
52     
53     return YES;
54 }

 

posted @ 2015-09-15 20:32  XYQ全哥  阅读(1190)  评论(0编辑  收藏  举报