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

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

步骤:

1、删除storyboard故事板和UIViewController

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

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

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

文件截图如下:

演示结果如下:

       

代码如下:

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

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

在SecondViewController类中只设置视图颜色

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

在ThreeViewController类中只设置视图颜色

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

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

 #import "AppDelegate.h"
#import "FirstViewController.h"
#import "SecondViewController.h"
#import "ThreeViewController.h" @interface AppDelegate () @end @implementation AppDelegate - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
// 创建window并设置大小
self.window = [[UIWindow alloc]initWithFrame:[[UIScreen mainScreen]bounds]]; //创建UITabBarController
UITabBarController *tabBarController = [[UITabBarController alloc]init]; //创建三个控制器,并且加入tabBarController中
FirstViewController *firstVC = [[FirstViewController alloc]init];
//设置标签栏标题
firstVC.tabBarItem.title = @"first";
//设置系统自带的图标
firstVC.tabBarItem = [[UITabBarItem alloc]initWithTabBarSystemItem:UITabBarSystemItemFavorites tag:];
//设置badgeValue
firstVC.tabBarItem.badgeValue = @""; SecondViewController *secondVC = [[SecondViewController alloc]init];
secondVC.tabBarItem.title = @"second";
//设置系统自带的图标
secondVC.tabBarItem = [[UITabBarItem alloc]initWithTabBarSystemItem:UITabBarSystemItemDownloads tag:];
//设置badgeValue
secondVC.tabBarItem.badgeValue = @""; ThreeViewController *threeVc = [[ThreeViewController alloc]init];
threeVc.tabBarItem.title = @"three";
//设置系统自带的图标
threeVc.tabBarItem = [[UITabBarItem alloc]initWithTabBarSystemItem:UITabBarSystemItemBookmarks tag:]; //[tabBarController addChildViewController:firstVC];
//[tabBarController addChildViewController:secondVC];
//[tabBarController addChildViewController:threeVC];
tabBarController.viewControllers = @[firstVC,secondVC,threeVc]; //将tabBarcontroller设置为根控制器
self.window.rootViewController = tabBarController; //window接受用户响应并显示
[self.window makeKeyAndVisible]; return YES;
}

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

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

    -iOS培训,iOS学习-------型技术博客.期待与您交流!------------ iOS开发之纯代码键盘退出(非常简单)     iOS开发之纯代码键盘退出 前面说到了好几次关于键盘退出的,但 ...

  2. iOS UITableViewCell UITableVIewController 纯代码开发

    iOS UITableViewCell UITableVIewController 纯代码开发 <原创> .纯代码 自定义UITableViewCell 直接上代码 ////// #imp ...

  3. iOS开发学习--纯代码 UIScrollView 无限循环的实现——代码类封装

    一个简单的利用UIScrollView 实现的无线滚动banner,下面的代码实现,因为封装问题,对两个及一下的view 支持出了一点问题(view是传参进来的,不可以生成两份),但是原理是正确的,智 ...

  4. IOS开发之纯代码界面--基本控件使用篇 ┊

    http://www.cocoachina.com/bbs/read.php?tid=131516

  5. Masonry -- 使用纯代码进行iOS应用的autolayout自适应布局

    简介 简化iOS应用使用纯代码机型自适应布局的工作,使用一种简洁高效的语法替代NSLayoutConstraints. 项目主页: Masonry 最新示例: 点击下载 项目简议: 如果再看到关于纯代 ...

  6. Masonry — 使用纯代码进行iOS应用的autolayout自适应布局

    本文转载至   http://www.ios122.com/2015/09/masonry/ 简化iOS应用使用纯代码机型自适应布局的工作,使用一种简洁高效的语法替代NSLayoutConstrain ...

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

    iOS开发——实战OC篇&环境搭建之纯代码(玩转UINavigationController与UITabBarController)   这里我们就直接上实例: 一:新建一个项目singleV ...

  8. iOS高仿app源码:纯代码打造高仿优质《内涵段子》

    iOS高仿app源码:纯代码打造高仿优质<内涵段子>收藏下来 字数1950 阅读4999 评论173 喜欢133 Github 地址 https://github.com/Charlesy ...

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

    关于AutoLayout,最早从iOS6开始引入使用.   主要功能是使用约束,对视图进行相对布局,以适应不同屏尺的变换.   网上大量的资料都在介绍xib和storyboard,如何使用AutoLa ...

随机推荐

  1. 用strtok函数分割字符串

    用strtok函数分割字符串 需要在loadrunner里面获得“15”(下面红色高亮的部分),并做成关联参数. //Body response 内容: <BODY><; PRE&g ...

  2. Windows 8.1 操作系统常用快捷键

    安装了 windows 8.1 有一段时间了,刚使用时有点儿不太习惯,后面知道了一些常用快捷键后,使用起来习惯多了.下面是一些常用的 Windows 8.1 快捷键: Ctrl + Tab: 访问所有 ...

  3. CodeForces 805C Find Amir

    直觉. 先走$1$走到$n$,然后从$n$走到$2$,然后从$2$走到$n-1$,然后从$n-1$走到$3$.一次花费为$0$,一次花费为$1$. #include <cstdio> #i ...

  4. 洛谷P1073 最优贸易 [图论,DP]

    题目传送门 最优贸易 题目描述 C 国有n 个大城市和m 条道路,每条道路连接这n 个城市中的某两个城市.任意两个城市之间最多只有一条道路直接相连.这m 条道路中有一部分为单向通行的道路,一部分为双向 ...

  5. linux 重写rm命令

    重写rm命令 replease rm to trash   必须使用root编辑/etc/bashrc vim /etc/bashrc 在最后面增加如下脚本 saferm () { if [ ! -d ...

  6. mongodb 32系统安装失败问题

    32位系统 在安装完成后 运行mongod --dbpath c:\data\db后,没有如愿以偿出现端口数字27017,出现了如下的报错 ************** D:\GREENT~1\Pow ...

  7. Nginx配置站点https

    step 1: 检查nginx的编译参数 使用nginx -V可以查看,如果编译参数中包含http_ssl_module,可以继续下一步操作,如果没有,则需要从新编译. step 2: 申请证书 目前 ...

  8. linux——(8)数据流重定向、管道命令

    概念一:数据流重定向 数据流分输入流和输出流,还有一个标准错误流,负责管理出错信息,比如一般的命令的输出会输出到屏幕上,我们可以用重定向让他输入到某个文件内. 相关操作: 1,标准输入(stdin): ...

  9. Failed to add VMware DC to zone due to : This DC is being managed by other CloudStack deployment.

    1.下载VMware-PowerCLI 2.安装VMware-PowerCLI 安装过程中会重复重启,请确认重启,不要设置稍后手动重启. 3.在开始,菜单中选择 vmware ->VMware ...

  10. 全景图从拍摄到 online

    全景图从拍摄到 online Panorama, CSS3, Canvas, 3D 2015-11-04 拍摄设备 照片拼接 制作 3D Cube Demo 拍摄设备 电动自动全景云台 Gigapan ...