iOS开发--UINavigationController

作者: 爱吃鱼的小灰 | 来源:发表于2016-12-19 14:49 被阅读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

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

    相关文章

      网友评论

        本文标题:iOS开发--UINavigationController

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