Fork me on GitHub

UI第八讲.UINavigationController, 懒加载, 界⾯面通信(属性传值,delegate代理传值)

一、UINavigationController
    1>. UINavigationController:导航控制器,是iOS中最常用的多视图控制器之一,它用来管理多个视图控制器。
    导航控制器可以认为是管理控制器的控制器,主要管理有层级关系的控制器。
     2>.创建
      UINavigationController继承于UIViewController,以栈的方式管理所控制的视图控制器,至少要有一个被管理的视图控制器,这个控制器我们称作,导航控制器的根视图控制器任何继承自UIViewController的类(多态)都可以作为根控制器。
     3>.工作原理
     UINavigationController通过的方式管理控制器的切换,控制入栈和出栈来展示各个视图控制器UINavigationControllerContentView里始终显示栈顶控制器的view

     viewControllers属性存储了栈中的所有被管理的控制器

     navigationController属性,父类中的属性,每个在栈中的控制器,都能通过此属性,获取自己所在的UINavigationController对象

 

 

二、定制UINavigationBar(导航栏)

    1>. barTintColor //设置导航条的颜色
        setBackgroundImage:forBarMetrics: //导航条加背景图⽚片
      title   //标题
      titleView   //标题视图
      leftBarButtonItem   //左按钮
      rightBarButtonItem   //右按钮

 

   2>.UIBarButtonItem属于MVCM。定义了UINavigationItem上按钮的触发事件,外观等

    -initWithBarButtonSystemItem:target:action:

    -initWithTitle:style:target:action:

    -initWithImage:style:target:action: tintColor

 

 

示例代码:

UINavigationController的基本属性及设置,对于返回上一级和进入下一级方法的运用

 

Appdelegate.m中,设置window,同时设置UINavigationController

 

 

在viewcontroller.m中,对于UINavigationController进本属性进行设置,同时运用push/pop方法

 

 

 

//注意这里的懒加载方法

 

 

在secondViewController.m中主要是设置按钮和利用按钮进行视图的切换

 

 

在threeViewController.m中主要是设置按钮和利用按钮进行视图的切换

 

 

 

 

三.界面通信

 

 (1).属性传值方法(从第一个界面往第二个界面传值)

例子:利用传值,在第一个视图推出到第二个视图时,在第一个视图中为第二个视图控制器的title赋值

 步骤:1>.先要在第二个视图控制器的.h文件中设置属性,同时在第二个视图控制器的.m中接收这个属性地变量值.

      2.在第一个视图控制器的.m中,把第二个视图控制器引入到第一个当中,并给第二个视图控制器的属性赋值.

     

引入secondViewController.h到第一个视图控制器中

 

 

 

在secondViewController.h中,设置属性

 

 

在secondViewController.m中,用title接收属性的变量值

 

 

(2).delegate代理传值方法

 

示例代码:(代理传值九步)

viewController.m文件

 

SecondViewController.h文件

 

SecondViewController.h文件

 

 

 

posted @ 2015-09-16 20:10  DengHuiCheng  阅读(286)  评论(0编辑  收藏  举报