iOS开发——实战OC篇&环境搭建之Xib(玩转UINavigationController与UITabBarController)
前面我们介绍了StoryBoard这个新技术,和纯技术编程的代码创建界面,本篇我们将介绍一个老的技术,但是在很多的公司或者库里面还是使用这个技术,既然如此它肯定有他的好处,至于好处这里我就不一一介绍了。
在Xcode5之前是只能使用Xib或者代码的,而代码又对于很多初学者来说算是一个难题。毕竟不知道怎么下手。所以我就总结了一下这段时间自己编写程序的一个实例来说明怎么使用老板的,苹果已经弃用了的Xib搭建一个软件界面:
一:新建一个空的项目,我这里命名未iCocos
此时项目里面就只有一个Appdelegate的头文件和实现文件
二:新建一个继承自tabBarController的MainViewController类(不是用Xib)。
三: 新建一个继承自UIViewController的BaseViewController类,这个来是用来继承的,我们后面用到的一般的UIView都是 继承自这个类。再新建一个继承自NavigationController的BasenavigationController类,这个也是一样是用来继 承的,我回到前面两篇中会看到你界面又五个导航栏对应显示,这里我们用来继承哪五个导航控制器的,当然后面还用到导航控制器也一样能继承自它,除非要做特 别的效果,注:这两个类都不要使用到Xib,因为是用来继承的,没必要显示界面。
四:新建五个对应的ViewController,它是继承是上面我们创建的BaseViewController,而且都要使用Xib,再新建之后记得取消每个Xib的自动布局Autolayout。
:
五:在MainViewController中导入上面新建的五个ViewController并初始化他们。
导入BaseNavigationController并将上面创建的五个ViewController实例放到数组里面作为它的根控制器加入到界面中:
到这里我们就基本上创建了一个环境界面。
下面我们来实现一些想要的功能:
六:前提两篇中我们又使用到自定义TabBar,而且在以后开发中这是很重要的,所以我们夜来实现一下,现在MainViewController中做如下定义
@interface MainViewController : UITabBarController
{
UIView *_tabBarView;
}
@end:
后面一张是在ViewDidLoad中调用这两个方法,不然就不能正常显示,而且还会崩溃。
当然要使用自定义的tabBar我们一半都是在初始化方法中隐藏系统自带的tabBar
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
if (self) {
// Custom initialization
[self.tabBar setHidden:YES];
}
return self;
}
七:我们在Appdelegate中导入这个mainViewController头文件,并在里面初始化它,最后将它作为Window的根控制器显示出来,一切就OK了。
八:最后我们来补充一个知识点,那就是向我们的QQ主界面右滑显示一个抽屉一样的界面,但是这个界面只显示一部分的,当然我也还会在专门的章节里面介绍这个功能及其使用,其实看完之后你们就知道这个其实很简单。
九:首先我们需要在网上下载一个库DDMenuController,导入之后在Appdelegate里面导入主类。
十:新建两个继承自BaseViewcontroller的类分别叫做RightViewController,LeftViewController,这里我们也要使用Xib,因为要做显示
。
十 一:在Appdelegate中导入这两个类,并且在启动方法里面初始化DDMenuContrller和 RightViewController,LeftViewController,将DDMenuController的左右控制器设置为我们创建的左右 实例(这里我们不要关心,因为十DDmenu这个库里面已经实现了的,我们只要拿来用九可以),最后八根控制器改为我们的 DDMenuController控制器,用来显示就可以了:
运行显示如下。大功告成,是不是很简单。哈哈!
纯代码主流App框架搭建:http://www.cnblogs.com/iCocos/p/4690677.html
StoryBoard主流App框架搭建:http://www.cnblogs.com/iCocos/p/4690659.html
iOS开发——实战OC篇&环境搭建之Xib(玩转UINavigationController与UITabBarController)的更多相关文章
- iOS开发——实战OC篇&环境搭建之纯代码(玩转UINavigationController与UITabBarController)
iOS开发——实战OC篇&环境搭建之纯代码(玩转UINavigationController与UITabBarController) 这里我们就直接上实例: 一:新建一个项目singleV ...
- iOS开发——实战OC篇&环境搭建之StoryBoard(玩转UINavigationController与UITabBarController)
环境搭建之StoryBoard(玩转UINavigationController与UITabBarController) 研究了这么就IOS开发,都没有所处一个像样或者自己忙一点的项目.最近自 ...
- ios开发——实战OC篇&SQLite3的实际应用
SQLite3的实际应用 前面的文章中介绍了SQlite,并且介绍了他的各种语法及使用方法. 但是没有正在项目中使用特,今天就开始做一个小小的实例,就是使用SQLite3来实现数据库的相应操作并且把他 ...
- ios开发——实战OC篇&FMDB详解
FMDB详解 前一篇文章中我们介绍的SQLite的使用,在iOS中原生的SQLite API在使用上相当不友好. 于是,就出现了一系列将SQLite API进行封装的库,例如FMDB.Plausibl ...
- iOS开发——控制器OC篇&UINavigationController&UITabBarController详解
UINavigationController&UITabBarController详解 一:UINavigationController 控制器的属性: UINavigationControl ...
- iOS开发——实用技术OC篇&单例模式的实实现(ACR&MRC)
单例模式的实实现(ACR&MRC) 在iOS开发中单例模式是一种非常常见的模式,虽然我们自己实现的比较少,但是,系统却提供了不少的到来模式给我们用,比如最常见的UIApplication,No ...
- iOS开发——多线程OC篇&多线程总结
多线程总结 //1.NSThread /** 优点:NSThread 比其他两个轻量级. 缺点:需要自己管理线程的生命周期,线程同步,线程同步时对数据的加锁会有一定的系统开销. cocoa给我提供了两 ...
- iOS开发——图层OC篇&UIColor深入研究(CGColor,CIColor)
UIColor深入研究(CGColor,CIColor) 由于跟人比较喜欢研究关于图层与动画方面的技术,正打算看看别人写的好东西,就遇到了好几个问题, 第一:UIClor类方法的使用 就是关于UICo ...
- iOS开发——多线程OC篇&多线程详解
多线程详解 前面介绍了多线程的各种方式及其使用,这里补一点关于多线程的概念及相关技巧与使用,相信前面不懂的地方看了这里之后你就对多线程基本上没有什么问题了! 1——首先ios开发多线程中必须了解的概念 ...
随机推荐
- 关于C++虚函数的一些东西
先上概念,C++的多态性:系统在运行时根据对象类型,来确定调用哪个重载的成员函数的能力. 多态性是通过虚函数实现的.成员函数之前加了virtual,即成为虚函数. 有虚成员函数的类,编译器在其每个对象 ...
- 【转】Linux Page Cache的工作原理
1 .前言 自从诞生以来,Linux 就被不断完善和普及,目前它已经成为主流通用操作系统之一,使用得非常广泛,它与Windows.UNIX 一起占据了操作系统领域几乎所有的市场份额.特别是在高性能计算 ...
- C语言——内存分配
1.在C语言的运行过程中,需要内存来存储数据.C语言使用的内存总体可以分为两类:一类是静态区,一类是动态区.2.静态数据存储区包含:只读数据区.已初始化的读写数据区.未初始化的读写数据区 动态 ...
- For Microsoft Azure Network VNET to VNET Connection
将一个 Azure 虚拟网络 (VNet) 连接到另一个 Azure 虚拟网络非常类似于将虚拟网络连接到本地站点位置.这两种连接类型都使用虚拟网络网关通过 IPsec/IKE 提供安全隧道.连接的 V ...
- deep learning 的java库
deepLearning4j: https://github.com/deeplearning4j/libnd4j/issues/208 deepLearn ...
- 串口 COM口 USB-TTL RS-232 RS-485 不同标准 区别 释疑
http://blog.sina.com.cn/s/blog_6566538d0100r7p8.html Point (所有要点都在这,请仔细阅读): 1.串口.COM口是指的物理接口形式(硬件).而 ...
- 非阻塞同步机制与CAS操作
锁的劣势 Java在JDK1.5之前都是靠synchronized关键字保证同步的,这种通过使用一致的锁定协议来协调对共享状态的访问,可以确保无论哪个线程 持有守护变量的锁,都采用独占的方式来访问这些 ...
- Lotus 迁移到Exchange POC 之 新建2007 服务器!
我们登录到Exchange 2007 服务器,由于需要对AD进行扩展,我们首先必须完成架构扩展,由于默认没有ldifde工具,所以我们需要执行servermanagercmd –I rsat-adds ...
- 如何在tomcat安装部署php项目
java开发者都知道,tomcat是用来部署java web项目的.前几天老k偶然得知PHP/Java Bridge,通过它可以实现在jsp和php之间共享session,详见<如何实现jsp和 ...
- sql GROUP BY 分组统计
语句1: SELECT TypeID, COUNT(*) AS [count] FROM GoodsInfo GROUP BY TypeID 得到结果 解析结果:GoodsInfo表有 4条记录, ...