一。导航控制器基础

  1.导航控制器的组成

    i。中间视图

    ii。导航栏

    iii。工具栏

  2.配置一个导航界面

    a。配置一个导航界面最重要的部分就是配置被包含的视图控制器。

    b。当它所属的视图控制器在导航控制器所控制的堆栈的顶部时(即该视图控制器将要显示时),系统自动显示该视图控制器的UINavigationItem。开发人员无需编写任何代码来调用UINavigationItem。

    c。    

  3.配置导航视图控制器

    a。可以使用UINavitionController的pushViewController:animated:方法将后面的视图控制器压入栈,从而显示它的视图。给定的视图控制器成为顶视图。对于弹出一个视图控制器,其实不需要做什么,界面上有一个后退按钮,用户点击它,顶视图将自动从栈中弹出。

    b。可以使用下面的这些方法从栈中弹出视图控制器:

    c。总之,UINavigationController提供了两个方法来管理堆栈。

      例如:当调用下一个视图控制器(即从一个界面切换到另一个界面,如用户选择了某个联系人名字)时,应该使用下面的方法将下一个视图控制器(从用户的角度,即下一页)推到堆栈中:

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

        当用户单击返回按钮来返回到上一个视图控制器时,popViewControllerAnimated就会被调用。所以开发人员无需自己调用popViewControllerAnimated方法。

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

    d。导航控制器本身有个viewController属性,该属性是一个NSArray,包含了栈上的条目。

      因此,根条目是数组的objectArray:0,顶条目也就是它的lastObject,也可以使用topViewController属性得到顶条目。

     但是,导航控制器还有一个visibleViewController属性,因为topViewController也许包含另一个视图控制器并显示它的视图,所以visibleViewController和topViewController可能不同。

    e。

  4.视图控制器的事件

**************************************

二。创建导航控制器实例

  1.在两个页之间导航实例

  2.在两个页之间传递数据

    经常需要在两个页之间传递数据,这个必须掌握。

    一个常规的做法是:在下一个视图控制器上声明所属的属性。然后,当上一个视图控制器调用下一个视图控制器时,就可以设置这些属性值。从而,第二个视图控制器就获得了第一个视图控制器传递过来的数值。

      例如:

    当然,如果想从第二个视图控制器那里会传个第一个视图 ,需要委托。

  3.定制返回按钮

    在默认的情况下,下一页上的返回按钮的文字是上一页的标题,但是也可以在程序中修改为其他文字(但是要记住:返回按钮是放在上一页的视图控制器上)。

  4.在导航控制栏上添加系统按钮和左右按钮

导航控制器(UINavigationController)的更多相关文章

  1. iOS开发UINavigation——导航控制器UINavigationController

    iOS开发UINavigation系列一——导航栏UINavigtionBar摘要iOS中的导航条可以附着于导航控制器之中使用,也可以在controller中单独使用,这篇博客,主要讨论有关导航栏的使 ...

  2. 导航控制器(UINavigationController)

    导航控制器管理一系列显示层次型信息的场景.它创建一个视图管理器"栈",栈底为根视图控制器,用户在场景间切换时,依次将试图控制器压入栈中,且当前场景的试图控制器位于栈顶.要返回上一级 ...

  3. 利用协议代理实现导航控制器UINavigationController视图之间的正向传值和反向传值

    实验说明 (1)正向传值:比如A类里地值要传给B类用,就是我们先在A类中声明一个B类对象(当然B类头文件要import过来),然后把A类中得某个 值传递给B类中得某个值(所以需要在B类中先准备一个变量 ...

  4. IOS UINavigationController 导航控制器

    /** 导航控制器掌握: 1.创建导航控制器 UINavigationController *nav = [[UINavigationController alloc] initWithRootVie ...

  5. IOS第12天(2,UINavigationController导航控制器)

    ****HMAppDelegate.m @implementation HMAppDelegate - (BOOL)application:(UIApplication *)application d ...

  6. UINavigationController 导航控制器 ,根据文档写的一些东西

    今天讲了导航控制器UINavigationController 和标签栏视图控制器UITabBarController 先来说一说导航视图控制器  UINavigationController 导航控 ...

  7. IOS 导航控制器基本使用(UINavigationController代码创建方式)

    ● UINavigationController的使用步骤 ➢ 初始化UINavigationController ➢ 设置UIWindow的rootViewController为UINavigati ...

  8. iOS开发UI篇—多控制器和导航控制器简单介绍

    iOS开发UI篇—多控制器和导航控制器简单介绍 一.多控制器 一个iOS的app很少只由一个控制器组成,除非这个app极其简单.当app中有多个控制器的时候,我们就需要对这些控制器进行管理 有多个vi ...

  9. IOS开发UI篇—导航控制器属性和基本使用

    IOS开发UI篇—导航控制器属性和基本使用 一.导航控制器的一些属性和基本使用 1.把子控制器添加到导航控制器中的四种方法 (1) 1.创建一个导航控制器 UINavigationController ...

  10. IOS开发-表视图LV3导航控制器

    学到这里感觉有点难了,其实这篇文章再草稿箱里放了好久了~ 最近对于学习的热情下降了.这不行-抓紧学习走起! 在这一章节的学习中主要针对导航控制器及表视图来建立多视图的应用, 首先要了解一些概念-- 1 ...

随机推荐

  1. 为什么选择 Yeoman 及 Yeoman 的安装

    今天向您介绍一个我刚接触到的比较新的网络前端开发工具: Yeoman . 什么是Yeoman? Yeoman是Google的团队和外部贡献者团队合作开发的一个项目.通过内部三个工具(yo,grunt, ...

  2. 彻底删除mysql服务

    http://wenku.baidu.com/link?url=XEOFkNXElJV6FoBDOs7m7BlDUv9-ZuLbRbeVwbMa7AXa8ukZ6oIpiYYy3gNnITmP911M ...

  3. 配置IISExpress允许外部访问

    1.找到IISExpress的配置文件,位于 <文档>/IISExpress/config文件夹下,打开applicationhost.config,找到如下代码: <site na ...

  4. [SQL]分组排练进行更新

    --方法(一):分组排练进行更新 ----------------------------------------------------------------------------------- ...

  5. Codeforces 132E Bits of merry old England 【最小费用最大流】

    题意: 让你输出长度为n的某个序列,然后给你m个变量. 每次给某个数赋值的代价是 假设赋值a=7那么代价是3,因为7的二进制位中有3个1. 要求最后总代价最小. 输出总共要进行操作的次数,和最小代价. ...

  6. POJ 3744 【矩阵快速幂优化 概率DP】

    搞懂了什么是矩阵快速幂优化.... 这道题的重点不是DP. /* 题意: 小明要走某条路,按照个人兴致,向前走一步的概率是p,向前跳两步的概率是1-p,但是地上有地雷,给了地雷的x坐标,(一维),求小 ...

  7. [HDU 4417] Super Mario (树状数组)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4417 题目大意:给你n个数,下标为0到n-1,m个查询,问查询区间[l,r]之间小于等于x的数有多少个 ...

  8. Regional Changchun Online--Elven Postman(裸排序二叉树)

    Elven Postman Time Limit: 1500/1000 MS (Java/Others) Memory Limit: 131072/131072 K (Java/Others) Tot ...

  9. Esfog_UnityShader教程_漫反射DiffuseReflection

    这篇是系列教程的第三篇,最近工作比较紧,所以这个周六周日就自觉去加了刚回来就打开电脑补上这篇,这个系列的教程我会尽量至少保证一周写一篇的.如果大家看过我的上一篇教程<Esfog_UnitySha ...

  10. V$SGA_RESIZE_OPS.STATUS = ERROR, and MMAN / auto-tuning stops.

    Oracle Server - Standard Edition - Version: 10.2.0.3This problem can occur on any platform. SYMPTOMS ...