OC中UINavigationController控制器

一、概述

    UINavigationController以栈的形式保存子控制器,pop push方法来弹入弹出控制器(且只能用来弹入弹出导航管理的控制器,因为是栈式管理)。永远只显示处于栈顶的控制器,当pop一个控制器时内存已释放(会调用deinit/dealloc函数),再次push此控制器时会从新加载(调用viewdidload)。方法如下:

    1 使用push方法能将某个控制器压入栈

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

    2 使用pop方法可以移除栈顶控制器

        将栈顶的控制器移除 :- (UIViewController *)popViewControllerAnimated:(BOOL)animated;

        回到指定的子控制器:- (NSArray *)popToViewController:(UIViewController *)viewController animated:(BOOL)animated;

        回到根控制器(栈底控制器):-(NSArray *)popToRootViewControllerAnimated:(BOOL)animated;

二、导航条

    导航条的内容由栈顶控制器的navigationItem属性决定。 

navigationItem属性

 OC中UINavigationController控制器

导航条(item)

OC中UINavigationController控制器

三、UINavigationBar(NBar) 与UINavigationItem(NItem)、UIBarButtonItem(BBItem)、UIToolbar

  1)NavigaitonBar是导航栏,位于屏幕的上方,管理整个NavigationController的navigationItem,即类似navigationcontroller一样提供了一个栈来管理NItem,在编程时,一般只设置每个控制器的navigationItem属性,而不会动NBar

  2) 一个导航控制器管理多个视图控制器(多个视图控制器共享一个导航控制器),即一个导航控制器只有一个NBar,多个视图控制器共享这一个NBar,则只要一个视图控制器改变了NBar的属性影响是全局的。而每个视图控制器系统都会懒加载的方式创建一个NItem显示在NBar中,改变NItem只会改变一个。

  3)BBItem是NItem的一项,NItem中有三项:左、右、title(可自定义view)、返回(下一个控制器),如果左没有自定义则系统会自动设置(非根控制器)。

  4)Toolbar显示在屏幕底部,和NBar一样是导航控制器的属性,具有唯一性,一个地方改变则会都改变。可以一次性添加多个UIBarButtonItem或按钮(包装成UIBarButtonItem后添加),有一个items数组属性.

你可能感兴趣的:(controller)