一。导航控制器基础

  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. Enumerator yielder.yield 与 Proc.yield 区别

    最近看ruby cookbook遇到这个用法,google一下,这里原文解释 http://stackoverflow.com/questions/18865860/enumerator-yielde ...

  2. java异常分类(运行时异常,可检查异常)

    NullPointerException:是运行时异常(RuntimeException),也叫非检查异常 所以我们抛出该类异常实例时,方法声明处无需添加throws来列举该类异常的抛出,编译器在编译 ...

  3. Codeforces 716C[数论][构造]

    /* CF傻逼构造题 某人要经过n回合游戏,初始分值是2,等级为1. 每次有两种操作 1.无条件,分值加上自己的等级数. 2.当目前的数字是完全平方数并且该数字开方以后是等级数加1的整数倍,那么可以将 ...

  4. 403 Forbidden

    http://baike.baidu.com/link?url=JJXC_XqJ2d-twe1dhbLUiRgvZU5OfneRURT4LvrtWBqv9Av4J0GPOlwk3KQuRx4Hzu4N ...

  5. cocos2d-x的环境的搭建

    1.首先提出一个我从开始接触cocosstudio和cocos2d-x的认识的误区,就是cocosstudio和cocos2d-x的区别是什么呢? cocosstudio是辅助工具,只不过它可以帮助我 ...

  6. iOS UILabel详解

    1.创建 CGRect rect = CGRectMake(100, 200, 50, 50); UILabel *label = [[UILabel alloc] initWithFrame:rec ...

  7. 【转】SQL Server 2008下载 (附注册码)

    SQL Server 2008 中文试用版下载地址:http://sqlserver.dlservice.microsoft.com/dl/download/B/8/0/B808AF59-7619-4 ...

  8. 【caffe-windows】 caffe-master 之 cifar10 超详细

    本教程尽量详细,大多步骤都有图,如果运行出错,请先对照自己的文件是否和图上的一样,包括标点啊,空格啊,斜杠,反斜杠啊之类的小细节. 本例程是在 win10 64位   caffe-master     ...

  9. cocos2dx lua 绑定之二:手动绑定自定义类中的函数

    cococs2dx 3.13.1 + vs2013 + win10 1.首先按照<cocos2dx lua 绑定之一:自动绑定自定义类>绑定Student类 2.在Student类中增加一 ...

  10. 如何正确的使用Lerp In Unity

    摘要 本文探讨如何用lerp实现近似的匀速旋转,当然如果运用本文给出的方法,使用slerp则可以实现匀速旋转,并指出Unity官方lerp示例代码的一些缺陷. 现有问题 比如四元数Lerp API: ...