iOS--UI之导航控制器与标签控制器

1、导航控制器和标签控制器都属于容器控制器;

a)容器控制器本身不负责向用户展示有意义的内容,只是负责管理子控制器,管理控制器的展示和子视图控制器视图之间的切换

b)容器类控制器本身也是视图控制器,都是UIViewController的子类。

2、导航控制器的基本概念

a) 导航控制器(UINavigationController)是用来管理子控制器的切换的大管家 

b)导航控制器它本身不显示视图内容,而是管理子控制器的视图显示,它提供了一个可以在这些视图之间切换显示的结构。

3、导航控制器的显示结构

a) 导航栏(Navigation bar) 

b) 子控制器的根视图(Custom content) 

c) 导航工具栏(Navigation toolbar),默认隐藏,较少使用

4、导航控制器的组织结构

a)组织结构指的并不是子控制器视图在屏幕上的布局方式,而是指容器视图控制器以什么样的基本数据结构描述和组织这些视图控制器。

b)导航控制器组织子视图的方式:将它的子控制器组织在一个树结构中。

c)树中的每一个视图控制器定义了它可能的下一级视图控制器和唯一能返回的上一级视图控制器。

d)导航控制器的栈结构管理特点:先进后出,后进先出

5、导航控制器的创建

//创建视图控制器

RootViewController *rootVC = [[RootViewController alloc]init]; 

//把控制器添加的窗⼝口上去显⽰

UINavigationController *navCtrl = [[UINavigationController alloc]initWithRootViewController:rootVC]; 

//设置为根视图

self.window.rootViewController = navCtrl;

6、导航控制器的常用方法

//初始化⼀一个根视图控制器,在栈的最底层

- (id)initWithRootViewController:(UIViewController *)rootViewController;

//压⼊入到⼀一个新的视图控制器中,在栈中最顶层,可以选择是否需要动画效果

- (void)pushViewController:(UIViewController *)viewController animated:(BOOL)animated;

//弹出到上一个控制器,可以选择是否需要动画

- (UIViewController *)popViewControllerAnimated:(BOOL)animated;

//弹出到指定的视图控制器中,可以选择是否需要动画效果

- (NSArray *)popToViewController:(UIViewController *)viewController animated: (BOOL)animated;

//回到根视图控制器,可以选择是否需要动画效果

- (NSArray *)popToRootViewControllerAnimated:(BOOL)animated;

7、标签控制器的基本概念

a) UITabBarController UINavigationController一样是用来管理视图控制器的。 

b) UINavigationController 是用来管理视图控制器之间的导航,UITabBarController是管理固定的几个视图控制器,子控制器是并列的。可以任意切换显示。 

c) 很多应用程序都使用 UITabBarController 来做整体的布局。

注意:TabBar只能显示5TabItem,如果超过5个则会自动生成个 More的标签显示剩余的Tab,这些Tab可以通过编辑显示在 UITabBar

8、标签控制器的结构

   与导航控制器不同,标签控制器是用数组管理子视图控制器,并且子视图之间是平等关系。导航控制器所管理的视图控制器之间是上下级关系

9UITabBar的常用设置

UITabBarController *tabBarController = [[UITabBarController alloc] init];

//设置tabBar的背景图⽚

tabBarController.tabBar.backgroundImage = [UIImage imageNamed:@"navbg.png"]; 

tabBarController.tabBar.tintColor = [UIColor grayColor];

//设置选中item的图⽚颜⾊

tabBarController.tabBar.selectedImageTintColor = [UIColor redColor];

//设置选中item,显⽰在此item下⾯的图⽚ 

tabBarController.tabBar.selectionIndicatorImage = [UIImage imageNamed:@"选中.png"];

注意:在实际项目开发中,导航控制器作为标签控制器的子视图来使用的情况非常多


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值