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

时间:2023-03-08 16:30:49
iOS开发——实战OC篇&环境搭建之Xib(玩转UINavigationController与UITabBarController)
iOS开发——实战OC篇&环境搭建之Xib(玩转UINavigationController与UITabBarController)

前面我们介绍了StoryBoard这个新技术,和纯技术编程的代码创建界面,本篇我们将介绍一个老的技术,但是在很多的公司或者库里面还是使用这个技术,既然如此它肯定有他的好处,至于好处这里我就不一一介绍了。
在Xcode5之前是只能使用Xib或者代码的,而代码又对于很多初学者来说算是一个难题。毕竟不知道怎么下手。所以我就总结了一下这段时间自己编写程序的一个实例来说明怎么使用老板的,苹果已经弃用了的Xib搭建一个软件界面:
iOS开发——实战OC篇&环境搭建之Xib(玩转UINavigationController与UITabBarController)

一:新建一个空的项目,我这里命名未iCocos

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

此时项目里面就只有一个Appdelegate的头文件和实现文件

二:新建一个继承自tabBarController的MainViewController类(不是用Xib)。

三: 新建一个继承自UIViewController的BaseViewController类,这个来是用来继承的,我们后面用到的一般的UIView都是 继承自这个类。再新建一个继承自NavigationController的BasenavigationController类,这个也是一样是用来继 承的,我回到前面两篇中会看到你界面又五个导航栏对应显示,这里我们用来继承哪五个导航控制器的,当然后面还用到导航控制器也一样能继承自它,除非要做特 别的效果,注:这两个类都不要使用到Xib,因为是用来继承的,没必要显示界面。
iOS开发——实战OC篇&环境搭建之Xib(玩转UINavigationController与UITabBarController)

四:新建五个对应的ViewController,它是继承是上面我们创建的BaseViewController,而且都要使用Xib,再新建之后记得取消每个Xib的自动布局Autolayout。
iOS开发——实战OC篇&环境搭建之Xib(玩转UINavigationController与UITabBarController)

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

五:在MainViewController中导入上面新建的五个ViewController并初始化他们。
导入BaseNavigationController并将上面创建的五个ViewController实例放到数组里面作为它的根控制器加入到界面中:
iOS开发——实战OC篇&环境搭建之Xib(玩转UINavigationController与UITabBarController)

到这里我们就基本上创建了一个环境界面。
下面我们来实现一些想要的功能:

六:前提两篇中我们又使用到自定义TabBar,而且在以后开发中这是很重要的,所以我们夜来实现一下,现在MainViewController中做如下定义

@interface MainViewController : UITabBarController
{
    UIView *_tabBarView;
}

@end:iOS开发——实战OC篇&环境搭建之Xib(玩转UINavigationController与UITabBarController)

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

后面一张是在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,因为要做显示iOS开发——实战OC篇&环境搭建之Xib(玩转UINavigationController与UITabBarController)

十 一:在Appdelegate中导入这两个类,并且在启动方法里面初始化DDMenuContrller和 RightViewController,LeftViewController,将DDMenuController的左右控制器设置为我们创建的左右 实例(这里我们不要关心,因为十DDmenu这个库里面已经实现了的,我们只要拿来用九可以),最后八根控制器改为我们的 DDMenuController控制器,用来显示就可以了:iOS开发——实战OC篇&环境搭建之Xib(玩转UINavigationController与UITabBarController)

运行显示如下。大功告成,是不是很简单。哈哈!iOS开发——实战OC篇&环境搭建之Xib(玩转UINavigationController与UITabBarController)

纯代码主流App框架搭建:http://www.cnblogs.com/iCocos/p/4690677.html

StoryBoard主流App框架搭建:http://www.cnblogs.com/iCocos/p/4690659.html