用代码生成UINavigationController 与UITabBarController相结合的简单QQ框架(部分)
首先我们需要搭建一个空的项目,当然xcode6.0以后不支持直接创建空项目,所以我们需要在系统生成项目之后,删除xcode自动给你生成的控制器和storyboard,另外需要在Main Interface 处将之前的main删除。如图所示:

然后我们需要在Appdelegate.m文件中的- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 方法编辑如下代码:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
self.window = [[UIWindow alloc]initWithFrame:[[UIScreen mainScreen] bounds]];
// 在这里创建一个tabbarcontroller
UITabBarController *tabBarController = [[UITabBarController alloc]init];
// 把创建好的tabbar设置成rootviewcontroller
self.window.rootViewController = tabBarController;
// 在tabbar里边添加子控制器
UITableViewController *vc1 = [[UITableViewController alloc]init];
// 设置导航栏的标题
vc1.title = @"消息列表";
UIBarButtonItem *barBtn = [[UIBarButtonItem alloc]initWithImage:[UIImage imageNamed:@"menu_icon_bulb"] style:UIBarButtonItemStylePlain target:self action:nil];
vc1.navigationItem.rightBarButtonItem = barBtn;
// 将一般控制器 转换为导航控制器
UINavigationController *nav1 = [[UINavigationController alloc]initWithRootViewController:vc1];
// 设置tabbar的item项 的文字
nav1.tabBarItem.title = @"消息";
// 设置item 的图片
nav1.tabBarItem.image = [UIImage imageNamed:@"tab_recent_nor"];
// 设置显示数字
nav1.tabBarItem.badgeValue = @"";
UITableViewController *vc2 = [[UITableViewController alloc]init];
//vc2.view.backgroundColor = [UIColor blueColor];
//NSArray *segmentedArray = [[NSArrayalloc]initWithObjects:@"1",@"2",@"3",@"4",nil];
// 首先创建一个数组,内部存上UISegmentedControl按钮的文字
NSArray *segmentTitle = [[NSArray alloc]initWithObjects:@"分组",@"全部", nil];
UISegmentedControl *segment = [[UISegmentedControl alloc]initWithItems:segmentTitle];
segment.selectedSegmentIndex = ; //设置默认选择项索引
//设置样式
// segment.segmentedControlStyle = UISegmentedControlStylePlain;
//设置在点击后是否恢复原样
// segment.momentary = YES;
// [segment setImage:[UIImage imageNamed:@"btn_jyy.png"] forSegmentAtIndex:3];//设置指定索引的图片
// 具体segmentcontrol的用法请参照: http://www.cnblogs.com/top5/archive/2012/05/17/2506618.html
// 将按钮添加到navigationitem的导航栏上去
vc2.navigationItem.titleView = segment;
UIBarButtonItem *barBtn2 = [[UIBarButtonItem alloc]initWithImage:[UIImage imageNamed:@"header_icon_add"] style:UIBarButtonItemStyleDone target:self action:nil];
vc2.navigationItem.rightBarButtonItem = barBtn2;
UINavigationController *nav2 = [[UINavigationController alloc]initWithRootViewController:vc2];
nav2.tabBarItem.title = @"联系人";
nav2.tabBarItem.image = [UIImage imageNamed:@"tab_buddy_nor"];
tabBarController.viewControllers = @[nav1,nav2];
// 显示在window窗口
[self.window makeKeyAndVisible];
return YES;
}
运行之后的结果是:


用代码生成UINavigationController 与UITabBarController相结合的简单QQ框架(部分)的更多相关文章
- iOS开发——实战OC篇&环境搭建之Xib(玩转UINavigationController与UITabBarController)
iOS开发——实战OC篇&环境搭建之Xib(玩转UINavigationController与UITabBarController) 前面我们介绍了StoryBoard这个新技术,和纯技术 ...
- iOS开发——实战OC篇&环境搭建之纯代码(玩转UINavigationController与UITabBarController)
iOS开发——实战OC篇&环境搭建之纯代码(玩转UINavigationController与UITabBarController) 这里我们就直接上实例: 一:新建一个项目singleV ...
- iOS开发——实战OC篇&环境搭建之StoryBoard(玩转UINavigationController与UITabBarController)
环境搭建之StoryBoard(玩转UINavigationController与UITabBarController) 研究了这么就IOS开发,都没有所处一个像样或者自己忙一点的项目.最近自 ...
- UIViewController、UINavigationController与UITabBarController的整合使用
UINavigationController与UITabBarController是iOS开发中最常用的两种视图控制器,它们都属于UIViewController的子类,继承关系如下: @interf ...
- UINavigationController与UITabBarController相关问题
UINavigationController与UITabBarController相关问题 UINavigationController与UITabBarController混用是非常常见的,有时候会 ...
- UINavigationController和UITabBarController
UINavigationController和UITabBarController 目录 概述 UINavigationController UITabBarController 实用功能 待解决 概 ...
- .NET 跨平台RPC框架DotNettyRPC Web后台快速开发框架(.NET Core) EasyWcf------无需配置,无需引用,动态绑定,轻松使用 C# .NET 0配置使用Wcf(半成品) C# .NET Socket 简单实用框架 C# .NET 0命令行安装Windows服务程序
.NET 跨平台RPC框架DotNettyRPC DotNettyRPC 1.简介 DotNettyRPC是一个基于DotNetty的跨平台RPC框架,支持.NET45以及.NET Standar ...
- 搭建一个简单struts2框架的登陆
第一步:下载struts2对应的jar包,可以到struts官网下载:http://struts.apache.org/download.cgi#struts252 出于学习的目的,可以把整个完整的压 ...
- SCSI miniport 驾驶一个简单的框架
前段时间,只需用一台新电脑,由于资金有限没有匹配了心仪已久的SSD.我没感觉到飞翔的感觉,总不甘心,仔细想想.我死了相当大的存储,我们可以假设部分内存作为硬盘驱动器把它弄出来.不会比固态硬盘的速度快, ...
随机推荐
- BZOJ2141排队——树状数组套权值线段树(带修改的主席树)
题目描述 排排坐,吃果果,生果甜嗦嗦,大家笑呵呵.你一个,我一个,大的分给你,小的留给我,吃完果果唱支歌,大家 乐和和.红星幼儿园的小朋友们排起了长长地队伍,准备吃果果.不过因为小朋友们的身高有所区别 ...
- java 使用 WebUploader
参考: http://blog.csdn.net/finalAmativeness/article/details/54668090 最近项目需要多文件上传. 所以使用了 baidu的 webuplo ...
- 自学Python3.5-字符串格式化 作用域 递归
一.字符串格式化 二.作用域 三.递归
- 单片机I/O口的结构的详解
1.什么是源型 漏型?什么是上拉电阻?下拉电阻?什么是 线驱动输出 集电极开路输出,推挽式输出? 我们先来说说集电极开路输出的结构.集电极开路输出的结构如图1所示,右边的那个三极管集电极什么都不接,所 ...
- 【模板】堆优化Dijkstra
Dij的核心思想:全局最小值不会被其他节点更新,因此得到最小值后只需要扩展一次即可. 概念:扩展.出队 注意:vis[ ]数组表示的是每个节点是否扩展过,因此开始时vis[st]不置1. 时间复杂度\ ...
- 由asp的一个错误,看语言的不同:asp & java
今天查看网页源代码,无意发现源代码尾部抛出asp的错误信息,但没有显示在网页上. 如果没查看源代码,还没发现asp运行代码出错了. 大致情况是这样,在asp中,有一个变量来表示用户当前使用的容量,注意 ...
- MySQL之汇总数据(AVG,COUNT,MAX,MIN,SUM)
table test Field Type Null Key Default Extra id int(11) NO PRI NULL auto_increment name char(50) NO ...
- js中this的总结
http://www.blogjava.net/baoyaer/articles/105864.html 在面向对象编程语言中,对于this关键字我们是非常熟悉的.比如C++.C#和Java等都提供了 ...
- wkhtmltopdf 安装过程不包含php扩展部分
Qt Webkit HTML Converter Install wkhtmltopdf This page documents installation of wkhtmltopdf on Gent ...
- 使用maven对项目进行junit的单元测试
Spring中的单元测试 需要引入依赖 <dependency> <groupId>junit</groupId> <artifactId>junit& ...