由于难度不大,直接上代码了,看一遍基本就明白思路了


1.创建一个tabBarViewController

.m文件

#import "SSTabBarViewController.h"
#import "constant.h"@interface SSTabBarViewController ()@end@implementation SSTabBarViewController-(instancetype)init
{self = [super init];if (self) {UINavigationController * newNavigationController = [WPUtil getViewControllerWithIdentifier:@"new" storyboardName:@"New"];UINavigationController * alreadyNavigationController = [WPUtil getViewControllerWithIdentifier:@"already" storyboardName:@"Already"];UINavigationController * myNavigationController = [WPUtil getViewControllerWithIdentifier:@"my" storyboardName:@"My"];UINavigationController * moreNavigationController = [WPUtil getViewControllerWithIdentifier:@"more" storyboardName:@"More"];self.viewControllers = @[newNavigationController, alreadyNavigationController, myNavigationController, moreNavigationController];UITabBarItem * newItem = self.tabBar.items[0];newItem.title = @"新订单";newItem.image = [[UIImage imageNamed:@"xindingdan_hui"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];newItem.selectedImage = [[UIImage imageNamed:@"xindingdan_lv"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];UITabBarItem * alreadyItem = self.tabBar.items[1];alreadyItem.title = @"已处理";alreadyItem.image = [[UIImage imageNamed:@"yichuli_hui"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];alreadyItem.selectedImage = [[UIImage imageNamed:@"yichuli_lv"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];UITabBarItem * myItem = self.tabBar.items[2];myItem.title = @"我的";myItem.image = [[UIImage imageNamed:@"wode_hui"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];myItem.selectedImage = [[UIImage imageNamed:@"wode_lv"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];UITabBarItem * moreItem = self.tabBar.items[3];moreItem.title = @"更多";moreItem.image = [[UIImage imageNamed:@"gengduo_hui"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];moreItem.selectedImage = [[UIImage imageNamed:@"gengduo_lv"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];}return self;
}-(void)viewDidLoad {[super viewDidLoad];
}@end

2.在appDelegate中设置,将window的rootView设置为我们的tabBar

-(BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];SSTabBarViewController * tabBar = [[SSTabBarViewController alloc] init];self.window.rootViewController = tabBar;[self.window makeKeyAndVisible];return YES;
}

注:这里一定要记得初始化window,否则会造成黑屏

3.设置程序启动后默认进入的viewController

4.注意:如果设置了navigationController此时该viewController的storyboard ID要设置在navigationController上

5.顺便说一句,当隐藏tabBar的时候,如果controllerView上有tableView,那么此时你需要用下面这段代码来让tableView顶部不留下空白部分:

self.automaticallyAdjustsScrollViewInsets = NO;

[分享]iOS开发-如何使用tabBarController相关推荐

  1. [分享]iOS开发-UI篇:CAlayer层的属性

    iOS开发UI篇-CAlayer层的属性 一.position和anchorPoint 1.简单介绍 CALayer有2个非常重要的属性:position和anchorPoint @property ...

  2. [分享]iOS开发 - 网络总结

    基本概念 客户端:client 服务器:server 请求:request 响应:response 过程 客户端 -> 发送请求 -> 服务器(连接数据库) 服务器 -> 发送响应 ...

  3. [分享]iOS开发-实现view底部控件随着键盘的弹出而上移的效果

    首先说一下思路: 想要达到底部控件随着键盘的弹出而上移的效果,那么我们必然需要的到键盘在弹出时的高度,以及原点坐标. 说白了我们的大致思路就是,用view的高度-键盘弹出时的高度,得到的值就是底部控件 ...

  4. [分享]iOS开发-实现UILabel显示出不同颜色并且某一部分产生下划线的效果 ...

    效果图: @interface XSRecommendedPrivilegeViewController () @property (weak, nonatomic) IBOutlet UIButto ...

  5. [共享]iOS开发系列--Swift语言

    2019独角兽企业重金招聘Python工程师标准>>> iOS开发系列--Swift语言 概述 Swift是苹果2014年推出的全新的编程语言,它继承了C语言.ObjC的特性,且克服 ...

  6. [转载]iOS开发之第三方登录QQ

    转载自 iOS_developer_zhong 1. 申请腾讯开发账号. 地址:点击打开链接 2. 下载最新的SDK   地址: SDK下载 SDK内容如下: 1.sample 这个是简单的demo ...

  7. IOS仿[自选股]项目开发

    [自选股]手机客户端致力于通过先进的移动互联技术,让广大投资者尊享更便捷的证券投资服务.其简约易用 功能特点 一:界面简洁 登录人性化 用户可通过QQ账户登录软件,无需注册登录.登录后,软件会自动同步 ...

  8. [转]iOS 远程推送(APNs)

    我是搬运工.原帖:http://blog.csdn.net/lifengzhong/article/details/7737028 目录(?)[-] 一简介 二使用步骤 step1 step2 ste ...

  9. [摘]iOS 通讯录操作

    访问地址簿和单个联系人数据的接口是基于C语言的函数,接口传递对地址簿各种对象的引用作为参数.管理地址簿中条目的基类对象是 ABRecord.一个 ABRecord 可以表示一个人 或者一个群体 ABG ...

最新文章

  1. 1355: [Baltic2009]Radio Transmission
  2. SuperSocket 1.5 Documentation译文 ------- 目录索引
  3. efcore 新特性 SaveChanges Events
  4. 手把手教你写DI_0_DI是什么?
  5. 显示器分辨率一直跳_2020如何选择适合自己的显示器?小白选购电脑显示器必看!...
  6. 6400万像素时代来了,小米首个入局
  7. python学习点滴记录-Day01
  8. pycharm安装scrapy失败_大数据开发神器——Scrapy 框架(读懂Spider流程图)
  9. mysql_分页、联合查询
  10. 几种码农使用的等宽字体比较——让自己的眼睛爽起来!
  11. 数据分析实战(五)基于R语言的Kmean聚类分析实战
  12. 树莓派教程(3)——树莓派设置中文
  13. secondary namenode 检查点
  14. ios申请企业开发者账号的代理_苹果开发者账号个人、公司、企业账号的申请和区别...
  15. args 打印输出argparse.ArgumentParser()的所有选项和默认值
  16. Windows App开发之编辑文本与绘制图形
  17. 什么是BeautifulSoup
  18. php 数字 字母组合,php随机生成数字字母组合的方法_php技巧
  19. 在暑期实习时需要注意些什么
  20. 华为社招嵌入式软件面试_华为嵌入式软件开发面试经验

热门文章

  1. android平台应用技术特点,Android平台应用安全关键技术研究
  2. 移通好闹钟微信小程序全套源码
  3. 怎样利用VNC远程连接LINUX桌面
  4. 如何保护.net中的dll文件(防破解、反编译)
  5. 登录代码,程序不是作文
  6. Swift中文教程(二十一) 协议
  7. 利用dns来ping通所有主机名的方法,免去一条条配置hosts
  8. LeetCode 274. H-Index
  9. 【python】正则表达式匹配多个模式
  10. Kubernetes-NodePort(十七)