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)的更多相关文章

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

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

  2. iOS开发——实战OC篇&环境搭建之StoryBoard(玩转UINavigationController与UITabBarController)

      环境搭建之StoryBoard(玩转UINavigationController与UITabBarController)   研究了这么就IOS开发,都没有所处一个像样或者自己忙一点的项目.最近自 ...

  3. ios开发——实战OC篇&SQLite3的实际应用

    SQLite3的实际应用 前面的文章中介绍了SQlite,并且介绍了他的各种语法及使用方法. 但是没有正在项目中使用特,今天就开始做一个小小的实例,就是使用SQLite3来实现数据库的相应操作并且把他 ...

  4. ios开发——实战OC篇&FMDB详解

    FMDB详解 前一篇文章中我们介绍的SQLite的使用,在iOS中原生的SQLite API在使用上相当不友好. 于是,就出现了一系列将SQLite API进行封装的库,例如FMDB.Plausibl ...

  5. iOS开发——控制器OC篇&UINavigationController&UITabBarController详解

    UINavigationController&UITabBarController详解 一:UINavigationController 控制器的属性: UINavigationControl ...

  6. iOS开发——实用技术OC篇&单例模式的实实现(ACR&MRC)

    单例模式的实实现(ACR&MRC) 在iOS开发中单例模式是一种非常常见的模式,虽然我们自己实现的比较少,但是,系统却提供了不少的到来模式给我们用,比如最常见的UIApplication,No ...

  7. iOS开发——多线程OC篇&多线程总结

    多线程总结 //1.NSThread /** 优点:NSThread 比其他两个轻量级. 缺点:需要自己管理线程的生命周期,线程同步,线程同步时对数据的加锁会有一定的系统开销. cocoa给我提供了两 ...

  8. iOS开发——图层OC篇&UIColor深入研究(CGColor,CIColor)

    UIColor深入研究(CGColor,CIColor) 由于跟人比较喜欢研究关于图层与动画方面的技术,正打算看看别人写的好东西,就遇到了好几个问题, 第一:UIClor类方法的使用 就是关于UICo ...

  9. iOS开发——多线程OC篇&多线程详解

    多线程详解 前面介绍了多线程的各种方式及其使用,这里补一点关于多线程的概念及相关技巧与使用,相信前面不懂的地方看了这里之后你就对多线程基本上没有什么问题了! 1——首先ios开发多线程中必须了解的概念 ...

随机推荐

  1. 我的日常工具——gdb篇

    我的日常工具——gdb篇 03 Apr 2014 1.gdb的原理 熟悉linux的同学面试官会问你用过gdb么?那好用过,知道gdb是怎么工作的么?然后直接傻眼... gdb是怎么接管一个进程?并且 ...

  2. BITED数学建模七日谈之六:组队建议和比赛流程建议

    今天进入数学建模经验谈第六天:组队建议和比赛流程建议 数学模型的组队非常重要,三个人的团队一定要有分工明确而且互有合作,三个人都有其各自的特长,这样在某方面的问题的处理上才会保持高效率. 三个人的分工 ...

  3. codejam环境熟悉—Minimum Scalar Product

    今天准备熟悉一下codejam的在线编程,为google的笔试做准备,因此按照codejam上对新手的建议,先用了一个简单的题目来弄清楚流程.记录一下需要注意的地方.   1.输入输出 输入输出重定位 ...

  4. FlatBuffers与protobuf性能比较

    FlatBuffers发布时,顺便也公布了它的性能数据,具体数据请见Benchmark. 它的测试用例由以下数据构成"a set of about 10 objects containing ...

  5. Flex的基础用法【转】

    //获得屏幕的分辨率 var x:Number=Capabilities.screenResolutionX; var y:Number=Capabilities.screenResolutionY; ...

  6. 正整数N是否是素数

    来自:[数据结构与算法分析——C语言描述]练习2.13 问题描述: a. 编写一个程序来确定正整数N是否是素数. b. 你的程序在最坏的情形下的运行时间是多少(用N表示)? c. 令B等于N的二进制表 ...

  7. 【数据结构与算法分析——C语言描述】第二章总结 算法分析

    算法 算法(algorithm)是为求解一个问题需要遵循的.被清楚地指定的简单指令的集合. 数学基础 四个定义: 1.大O表示法: 如果存在正常数 c 和 n0 使得当 N ≥ n0时,T(N) ≤ ...

  8. cannot restore segment prot after reloc: Permission denied

    编辑/etc/selinux/config,找到这段:# This file controls the state of SELinux on the system. # SELINUX= can t ...

  9. Linux操作系统时间与BIOS硬件时间

    注:以Ubuntu为例说明 在Linux计算机上,有两个时间,一个是硬件时间(BIOS中记录的时间,称为hwclock),另一个是操作系统时间(osclock).硬件时钟由BIOS电池供电, 当计算机 ...

  10. Speex for Android

    http://blog.csdn.net/chenfeng0104/article/details/7088138在Android开发中,需要录音并发送到对方设备上.这时问题来了,手机常会是GPRS. ...