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. 用js完成blog项目

    //前台调用 var $ = function (args) { return new Base(args); } //基础库 function Base(args) { //创建一个数组,来保存获取 ...

  2. WinForm 中两个窗口之间传递数据

    方法有很多种,这里介绍项目中使用的两种 一.通过委托+事件的方法进行传值 (点击Form2中的button1按钮,将会把Form2中的textbox.text 传给Form1中的 lable.text ...

  3. 单源最短路径-Dijkstra算法

    1.算法标签 贪心 2.算法描述 具体的算法描述网上有好多,我觉得莫过于直接wiki,只说明一些我之前比较迷惑的. 对于Dijkstra算法,最重要的是维护以下几个数据结构: 顶点集合S : 表示已经 ...

  4. 实现JQuery EasyUI右键菜单变灰不可用效果

    使用过EasyUI的朋友想必都知道疯狂秀才写的后台界面吧,作为一个初学者我不敢妄自评论它的好坏,不过它确实给我们提供了一个很好框架,只要在它的基础上进行修改,基本上都可以满足我们开发的需要. 知道“疯 ...

  5. geeksforgeeks@ Equal to product (Binary Search)

    http://www.practice.geeksforgeeks.org/problem-page.php?pid=667 Equal to product Given an array of in ...

  6. 【转】webgame前台开发总结--虽然是10年的文章,但是也有参考价值

    一.webgame整个游戏流程: 1.预加载(打开游戏页面后,显示进度条,主要加载前期的登陆和创建角色资源,创建角色资源的加载可以放到进入创建角色界面的时候加载,因为玩家除了第一次进入游戏,其他时间基 ...

  7. SQL时间第二期_时间格式化

    0   或   100   (*)     默认值   mon   dd   yyyy   hh:miAM(或   PM)       1   101   美国   mm/dd/yyyy       ...

  8. 企业部署Linux应用将拥有更低的整体拥有成本

    企业部署Linux应用将拥有更低的整体拥有成本     使用Linux能为企业的IT解决方案降低TCO(整体拥有成本Total Cost of The Ownership)吗?在面临这个问题时,很多企 ...

  9. openstack kilo 流量

  10. 如何使cron任务出错时发邮件

    如果设置了 MAILTO,cron就会将任务的标准输出和标准错误输出重定向到邮箱(即发送邮件).但如果只想接到错误报警邮件 -- 即任务正常执行时不发送,只在出错时发送 -- 应该怎么实现呢? 方法很 ...