iOS 你不知道的新鲜事iOS DeveloperiOS 开发成长中心

iOS开发--UINavigationController

2016-12-19  本文已影响164人  爱吃鱼的小灰
导航控制器是一个容器

记住一个原则:先进后出 后进先出

  1. 基本概念
    1)继承于UIViewControler

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

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

栈:系统连续分配的内存

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

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

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

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

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

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

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

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

  1. 结构,包含三个部分
    1)navigationBar 导航栏
  1. 内容视图
    3)toolBar,因为不常用,默认是隐藏的 / 工具栏
  1. 属性

1)获取到在栈中最顶层的试图控制器
1和2其实一样
topViewController
例如

 id topViewController = self.navigationController.topViewController;

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

id visibleViewController = self.navigationController.visibleViewController;

3)在栈中当前有的试图控制器 //返回一个数组栈中有的控制器
viewControllers
例如:

id viewControllersr = self.navigationController.viewControllers;

4)隐藏导航栏
navigationBarHidden
例如

self.navigationController.navigationBarHidden = YES;
//YES确定隐藏

5)获取到导航栏
navigationBar
例如:

 id navigationBar = self.navigationController.navigationBar;

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

    initWithRootViewController:(UIViewController *)rootViewController;

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

    pushViewController:(UIViewController *)viewController animated:(BOOL)animated;
例如:
[self.navigationController pushViewController:twoViewController animated:YES];

3)移除栈顶的一个控制器(返回上一个控制器也就是自己出栈)

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

例如:

[self.navigationController popViewControllerAnimated:YES];

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

    - (NSArray *)popToViewController:(UIViewController *)viewController animated:(BOOL)animated;
例如:
NSArray *arrayViewController = self.navigationController.viewControllers;
[self.navigationController popToViewController:arrayViewController[1] animated:YES];

5)回到根视图控制器

    - (NSArray *)popToRootViewControllerAnimated:(BOOL)animated;
        例如:
[self.navigationController popToRootViewControllerAnimated:YES];//

UINavigationController基本的知识点就这么多了,欢迎指正

MyCodingWorld.jpg

有兴趣可以关注下谢谢!!!

上一篇下一篇

猜你喜欢

热点阅读