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 }
时间: 2024-10-12 10:57:39

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

【好程序员笔记分享】——iOS开发之纯代码键盘退出

-iOS培训,iOS学习-------型技术博客.期待与您交流!------------ iOS开发之纯代码键盘退出(非常简单)     iOS开发之纯代码键盘退出 前面说到了好几次关于键盘退出的,但是最近开始着手项目的时候却闷了,因为太多了,笔者确实知道有很多中方法能实现,而且令我影响最深的就是 EndEditing,但是因为即有textView,又有TextField而且他们各有不同的方法,虽然笔者现在搞懂了,但是不知道什么时候又不记得 了,而且虽然感觉很简单现在感觉很简单的样子,但是对于没

iOS UITableViewCell UITableVIewController 纯代码开发

iOS UITableViewCell UITableVIewController 纯代码开发 <原创> 1.纯代码 自定义UITableViewCell 直接上代码 ////// #import <UIKit/UIKit.h> @interface CodeTableViewCell : UITableViewCell @property (nonatomic, weak) UIImageView *iconView; @property (nonatomic, weak) UI

iOS开发:纯代码实现汤姆猫小游戏

演示效果如下: 代码如下: 1 // 2 // CKViewController.m 3 // 纯代码实现汤姆猫 4 // 5 // Created by FrankChen on 14-12-10. 6 // Copyright (c) 2014年 diaozhatian. All rights reserved. 7 // 8 9 #import "CKViewController.h" 10 11 @interface CKViewController () 12 { 13 //

ios 开发日记 13-剖析网易新闻标签栏视图切换(addChildViewController属性介绍)

iOS开发 剖析网易新闻标签栏视图切换(addChildViewController属性介绍) 时间 2014-06-25 21:45:21  CSDN博客 原文  http://blog.csdn.net/hmt20130412/article/details/34523235 主题 网易iOS开发 本来只是打算介绍一下addChildViewController这个方法的,正好今天朋友去换工作面试问到网易新闻标签栏效果的实现,就结合它,用个小Demo实例介绍一下:(具体解释都写在了Demo里

iOS开发——实战OC篇&amp;环境搭建之纯代码(玩转UINavigationController与UITabBarController)

iOS开发——实战OC篇&环境搭建之纯代码(玩转UINavigationController与UITabBarController) 这里我们就直接上实例: 一:新建一个项目singleView Controller,命名未iCocos 二:由于我们使用的纯代码实现的,所以删除其中的StoryBoard和Viewtroller的两个文件 三:新建一个继承自TabBar Controller的类,我们命名问iCocos ViewController 三:在Appdelegate的实现文件中导入刚刚

iOS学习3_UI开发之纯代码/storyboard/xib

由于做android开发时间比较长,按照android的经验,一般开发界面都是使用xml来写布局文件的,很少会完全使用代码来写布局,最近刚学iOS,发现好多都是直接使用代码来写布局的.看视频学习刚好看到这个不错的小项目,因此做了一点小小的整理. 要实现的效果如下,点击加号添加一条,点击回收投标删除最下面一条,点击删除会删除当前的一条.点击头片会更改中间的文字.删除/添加会伴随动画. 1.使用纯代码来写布局 点击添加按钮 - (IBAction)add:(UIBarButtonItem *)sen

iOS开发UI篇—以微博界面为例使用纯代码自定义cell程序编码全过程(一)

iOS开发UI篇-以微博界面为例使用纯代码自定义cell程序编码全过程(一) 一.storyboard的处理 直接让控制器继承uitableview controller,然后在storyboard中把继承自uiviewcontroller的控制器干掉,重新拖一个tableview controller,和主控制器进行连线. 项目结构和plist文件 二.程序逻辑业务的处理 第一步,把配图和plist中拿到项目中,加载plist数据(非png的图片放到spooding files中) 第二步,字

【iOS开发】多屏尺的自动适配 AutoLayout (纯代码方式)

关于AutoLayout,最早从iOS6开始引入使用. 主要功能是使用约束,对视图进行相对布局,以适应不同屏尺的变换. 网上大量的资料都在介绍xib和storyboard,如何使用AutoLayout,说纯代码使用AutoLayout进行UI布局的越来越少.对于我这个习惯了代码UI布局的人,写个备忘: AutoLayout是什么? 使用一句Apple的官方定义的话 AutoLayout是一种基于约束的,描述性的布局系统. Auto Layout Is a Constraint-Based, De

iOS界面布局之三——纯代码的autoLayout及布局动画

iOS界面布局之三--纯代码的autoLayout及布局动画 一.引言 关于界面布局,apple的策略已经趋于成熟,autolayout的优势在开发中也已经展现的淋漓尽致.除了使用storyBoard进行布局约束的拖拽,有时我们也需要在代码中进行autolayout的布局设置,Masonry库可以方便的创建约束属性,实际上,我们也没有必要再使用系统原生的代码来创建和设置约束,这篇博客只作为使用的方法备忘.前几篇布局介绍的链接如下: 使用autoresizing进行界面布局:http://my.o