iOS开发之视图切换

2020-01-15 13:50:40王冬梅
  • 改变viewControllers属性

    三、UINavigationController导航控制器

    1. UINavigationController中的子控制器以栈的形式存储,只有在栈顶部的控制器才能显示在界面上
    2. 压栈pushController,出栈popController
    3. UINavigationController必须有一个根控制器rootViewController
    4. 子控制器通过navigationController属性访问UINavigationController
    5. 在栈中的子控制器都有一个导航栏navigationBar,通过navigationItem去控制

    iOS开发,视图切换


    UINavigationItem属于MVC中的Model,封装了要显示在UINavigationBar上的数据:

    title: 标题
    titleView :标题视图
    leftBarButtonItem :左按钮
    rightBarButtonItem :右按钮

    下一个子视图左侧返回按钮leftBarButtonItem的标题优先级:

    1. 导航栏返回按钮backBarButtonItem的标题
    2. 导航栏navigationItem的标题
    3. 视图控制器的标题

    UINavigationController常用的主要方法:

     

    复制代码
    #pragma mark 压栈,把控制器压入导航控制器子控制器栈中
    - (void)pushViewController:(UIViewController *)viewController animated:(BOOL)animated;
    #pragma mark 出栈,把导航控制器子控制器栈的栈顶弹出
    - (void)popViewControllerAnimated:(BOOL)animated;
    #pragma mark 多次出栈直到栈顶为指定控制器
    - (void)popToViewController:(UIViewController *)viewController animated:(BOOL)animated;
    #pragma mark 多次出栈直到栈顶为根控制器
    - (void)popToRootViewControllerAnimated:(BOOL)animated;