ios自带的导航控制器与重写的又什么区别

 我来答
受司大人
推荐于2016-02-13 · 知道合伙人影视综艺行家
受司大人
知道合伙人影视综艺行家
采纳数:20262 获赞数:171846
毕业于浙江广厦,有一定的电脑专业基础和两年工作经验,读过相关书籍多本

向TA提问 私信TA
展开全部
iOS开发项目篇—03添加导航控制器
一、简单说明
  分析:分析微博应用,我们需要给每个子控制器都添加一个导航控制器(每个子控制器的导航不一样),所以需要新建一个导航控制器,然后把该导航控制器作为window的根控制器,添加的四个子控制器,分别添加在导航控制器上,也就是说整个项目采用当前主流的UI框架,一个UITabBarController管理着四个UINavigationController,而每个UINavigationController则分别管理着“首页”、“消息”、“发现”和“我”这四个子控制器。
(1)新建一个类,让其继承自UINavigationController。

(2)把该导航控制器作为window的根控制器

(3)设置标题
提示:
childVc.tabBarItem.title = title; ---------设置tabbar标签上的标题
  childVc.navigationItem.title = title; ----设置导航栏的标题
  childVc.title = title;-----------------------相当于同时设置了tabBarItem.title和navigationItem.title二者的标题
(4)新的需求,当点击子控制器(tableview)的cell时跳转到得下一个界面隐藏tabbar工具条。
隐藏控制器的BAR工具条,可以拦截push方法,自定义导航控制器,重写push方法,就能够拦截所有push进来的子控制器
拦截push操作~

二、实现代码
1.代码
主控制器中,YYTabBarViewController.m文件

1 //
2 // YYTabBarViewController.m
3 // 02-微博添加子控制器和设置项目结构
4 //
5 // Created by apple on 14-7-3.
6 // Copyright (c) 2014年 itcase. All rights reserved.
7 //
8
9 #import "YYTabBarViewController.h"
10 #import "YYHomeTableViewController.h"
11 #import "YYDiscoverViewController.h"
12 #import "YYMessageViewController.h"
13 #import "YYProfileViewController.h"
14 #import "UIImage+Extension.h"
15 #import "YYNavigationViewController.h"
16
17 @interface YYTabBarViewController ()
18
19 @end
20
21 @implementation YYTabBarViewController
22
23
24 - (void)viewDidLoad
25 {
26 [super viewDidLoad];
27 //添加四个子控制器
28 YYHomeTableViewController *home=[[YYHomeTableViewController alloc]init];
29 [self addOneChildVc:home title:@"首页" imageName:@"tabbar_home" selectedImageName:@"tabbar_home_selected"];
30
31
32 YYMessageViewController *message=[[YYMessageViewController alloc]init];
33 [self addOneChildVc:message title:@"消息" imageName:@"tabbar_message_center" selectedImageName:@"tabbar_message_center_selected"];
34
35 YYDiscoverViewController *discover=[[YYDiscoverViewController alloc]init];
36 [self addOneChildVc:discover title:@"发现" imageName:@"tabbar_discover" selectedImageName:@"tabbar_discover_selected"];
37
38 YYProfileViewController *profile=[[YYProfileViewController alloc]init];
39 [self addOneChildVc:profile title:@"我" imageName:@"tabbar_profile" selectedImageName:@"tabbar_profile_selected"];
40 }
41
42 /**
43 * 添加一个子控制器
44 *
45 * @param childVC 子控制对象
46 * @param title 标题
47 * @param imageName 图标
48 * @param selectedImageName 选中时的图标
49 */
50 -(void)addOneChildVc:(UIViewController *)childVc title:(NSString *)title imageName:(NSString *)imageName selectedImageName:(NSString *)selectedImageName
51 {
52 //随机设置子控制器的背景颜色
53 childVc.view.backgroundColor=YYRandomColor;
54
55 //设置标题
56 childVc.title=title; //相当于设置了后两者的标题
57 // childVc.navigationItem.title=title;//设置导航栏的标题
58 // childVc.tabBarItem.title=title;//设置tabbar上面的标题
59
60 //设置图标
61 childVc.tabBarItem.image=[UIImage imageWithName:imageName];
62 //设置选中时的图标
63 UIImage *selectedImage=[UIImage imageWithName:selectedImageName];
64
65
66 if (iOS7) {
67 // 声明这张图片用原图(别渲染)
Storm代理
2023-07-25 广告
StormProxies是一家可靠的代理服务提供商,提供原生IP(住宅原生IP)和高匿名代理服务。以下是关于StormProxies的原生IP服务的一些信息:1. 住宅原生IP:StormProxies提供的住宅原生IP是指从真实的家庭或企... 点击进入详情页
本回答由Storm代理提供
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式