美文网首页
iOS--UINavigationController(导航控制

iOS--UINavigationController(导航控制

作者: 空白Null | 来源:发表于2016-07-07 15:01 被阅读214次

一、UINavigationController(导航控制器)

1、基本概念

1)继承于UIViewControler

2)相当于一个容器用来管理有层级关系的控制器

3)采用栈的方式管理所有controller,每个controller管理各自的试图。

栈:

向栈中添加一个对象的操作称为入栈

在栈中删除一个对象的操作称为出栈

第一个入栈的对象叫做基栈

最后一个入栈的对象,叫做栈顶

当前显示的试图控制器,即为栈顶。

对象出栈、入栈的方式:后进先出,先进后出

4)提供返回上一级controller的默认button和方法

5)创建时要给导航控制器设置根控制器

2、结构,包含三个部分

1)navigationBar

2) 内容试图

3)toolBar,因为不常用,默认是隐藏的

3、常用属性和方法

属性

1)获取到在栈中最顶层的试图控制器

topViewController

2)获取到在栈中当前显示的试图控制器

visibleViewController

3)在栈中当前有的试图控制器

viewControllers

4)隐藏导航栏

navigationBarHidden

5)获取到导航栏

navigationBar

方法

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

initWithRootViewController:(UIViewController *)rootViewController;

2)往栈中压入一个新的控制器

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

3)移除栈顶的一个控制器

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

4)弹出到指定的视图控制器中,返回的数组代表要出栈中移除的对象

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

5)回到根视图控制器

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

二、练习

在第二个视图控制器在添加一个UIButton实例,单击该按钮时,压入一个新的视图控制器。在该视图中添加四个按钮,依次实现,

1、压入一个新的视图控制器;

2、返回上一个视图控制器;

3、返回根视图控制器;

4、返回指定的视图控制器

三、UINavigationBar(导航栏)

1、基本概念

1)和导航控制器一样,是一个容器,用来显示导航栏上的试图,

2) 竖屏44 横屏32

2、配置外观

1) 设置导航栏样式

self.navigationController.navigationBar.barStyle = UIBarStyleBlack;

2)设置导航栏是否透明,设为不透明能够屏蔽导航栏对试图frame的影响

self.navigationController.navigationBar.translucent = NO;

1) 配置背景颜色

self.navigationController.navigationBar.barTintColor = [UIColor redColor];

2)配置背景图片

self.navigationController.navigationBar setBackgroundImage: forBarMetrics:

3) 改变导航栏上默认按钮颜色

self.navigationBar.tintColor

3、配置内容

1)每个controller都有专属的navigationItem

1)通过配置不同控制器的navigationItem让不同控制器的导航栏显示不同的内容

2)navigationItem的常用属性

leftBarButtonItem

rightBarButtonItem

backBarButtonItem

title

titleView

3) backBarButtonItem是由上一层控制器控制的

4) 导航栏的prompt属性,通过navigationItem来设置,其主要作用是用于提示用户。比如,用户正在请求网络数据时,提示用户数据正在加载。待加载完成后可以将它的值设置为nil,取消显示。

相关文章

网友评论

      本文标题:iOS--UINavigationController(导航控制

      本文链接:https://www.haomeiwen.com/subject/updljttx.html