Iphone将window的跟视图替换成自定义的TabBar视图
2012-03-17 21:44 htc开发 阅读(243) 评论(0) 编辑 收藏 举报今天感觉很累了,就只将代码添出来,然后简单的做下说明:
我们在项目中应该会遇到UINavigationController和UITabBarController不能同时存在于window视图,但是往往项目是这样的,先需要UINavigationController视图作为根视图(比如说登录界面,登录界面是不需要下面的tabbar的),然后登录进去后就需要一个UITabBarController视图,所以让人比较的纠结,下面将解决这个问题,先建一个基于Navigation的项目,项目会自动将UINavigationController加入window根视图中,然后在rootviewcontroller(自动生成的)页面中加入一个button,点击这个button后就会将window视图中的UINavigationController删除并将自定义的UITabBarController加入window根视图中,之所以要自定义UITabBarController,是因为自定义的东西样式背景等随便自己变,很方便,并且这些自定义的UITabBarController代码以后都可以重用的,修改的部分很少,当然你可以用iphone自带的UITabBarController:
1.建一个基于导航的项目,然后在RootViewController.h中将项目自动生成的delegate导入进来,在TraverNotepadForIphoneAppDelegate.m文件中将为下面定义的rootdelegate赋值:
2. 在RootViewController.xib中添加一个UIButton,下面是这个button的点击事件的方法:
3.下面的代码是自定义的UITabBarController以及自定义tabbar需要的另外两个文件:
先是新建一个继承于UIViewController的类,记得将自动生成xib文件的复选筐选上,两个文件的代码如下,这里面用到了几个类,这需要自己定义,知识当作测试而已,这里就没添出来了:
然后是新建一个继承于UIView的类,这是自定义tabar的工具类,代码如下:
4.在自动生成的TraverNotepadForIphoneAppDelegate类中添加如下代码:
TraverNotepadForIphoneAppDelegate.h文件:
TraverNotepadForIphoneAppDelegate.m文件:
5.最后记得在MainWindow.xib中拖入一个View Controller,并将其class指定为MyCustomTabBarViewController,然后将该View Controller与
TraverNotepadForIphoneAppDelegate类中的mycustomtabbarview连接,并将TraverNotepadForIphoneAppDelegate类中的myrootview与MainWindow.xib中的RootViewController连接。