导航控制器(UINavigationController)
一。导航控制器基础
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)的更多相关文章
- iOS开发UINavigation——导航控制器UINavigationController
iOS开发UINavigation系列一——导航栏UINavigtionBar摘要iOS中的导航条可以附着于导航控制器之中使用,也可以在controller中单独使用,这篇博客,主要讨论有关导航栏的使 ...
- 导航控制器(UINavigationController)
导航控制器管理一系列显示层次型信息的场景.它创建一个视图管理器"栈",栈底为根视图控制器,用户在场景间切换时,依次将试图控制器压入栈中,且当前场景的试图控制器位于栈顶.要返回上一级 ...
- 利用协议代理实现导航控制器UINavigationController视图之间的正向传值和反向传值
实验说明 (1)正向传值:比如A类里地值要传给B类用,就是我们先在A类中声明一个B类对象(当然B类头文件要import过来),然后把A类中得某个 值传递给B类中得某个值(所以需要在B类中先准备一个变量 ...
- IOS UINavigationController 导航控制器
/** 导航控制器掌握: 1.创建导航控制器 UINavigationController *nav = [[UINavigationController alloc] initWithRootVie ...
- IOS第12天(2,UINavigationController导航控制器)
****HMAppDelegate.m @implementation HMAppDelegate - (BOOL)application:(UIApplication *)application d ...
- UINavigationController 导航控制器 ,根据文档写的一些东西
今天讲了导航控制器UINavigationController 和标签栏视图控制器UITabBarController 先来说一说导航视图控制器 UINavigationController 导航控 ...
- IOS 导航控制器基本使用(UINavigationController代码创建方式)
● UINavigationController的使用步骤 ➢ 初始化UINavigationController ➢ 设置UIWindow的rootViewController为UINavigati ...
- iOS开发UI篇—多控制器和导航控制器简单介绍
iOS开发UI篇—多控制器和导航控制器简单介绍 一.多控制器 一个iOS的app很少只由一个控制器组成,除非这个app极其简单.当app中有多个控制器的时候,我们就需要对这些控制器进行管理 有多个vi ...
- IOS开发UI篇—导航控制器属性和基本使用
IOS开发UI篇—导航控制器属性和基本使用 一.导航控制器的一些属性和基本使用 1.把子控制器添加到导航控制器中的四种方法 (1) 1.创建一个导航控制器 UINavigationController ...
- IOS开发-表视图LV3导航控制器
学到这里感觉有点难了,其实这篇文章再草稿箱里放了好久了~ 最近对于学习的热情下降了.这不行-抓紧学习走起! 在这一章节的学习中主要针对导航控制器及表视图来建立多视图的应用, 首先要了解一些概念-- 1 ...
随机推荐
- dedecms列表页如何让文章列表里面的文章每隔五篇就隔开一段空间
dedecms列表页如何让文章列表里面的文章每隔五篇就隔开一段空间,运用js控制列表样式的方法. 代码如下: <script type="text/javascript"&g ...
- [ActionScript3.0] 运用JPEGEncoderOptions或者PNGEncoderOptions保存图片到本地
在flash player 11.3和air3.3之前,我们可以借助第三方类(JPEGEncoder)这些,很容易处理.现在,有了encode和JPEGEncoderOptions这些,处理位图数据就 ...
- Delphi的Socket编程步骤(repulish)
转贴自:http://topic.csdn.net/t/20010727/16/212155.html ClientSocket 和ServerSocket几个重要的属性: 1.client和se ...
- 立体匹配:关于Middlebury提供的源码的简化使用
Middlebury提供的源码,虽然花了不到一个小时就运行起来啦.但说实话,它那循环读取脚本命令来执行算法真是让我费了不少头脑,花了近三天时间,我才弄明白了它的运行机制.你说,我就想提取一下算法,你给 ...
- 算法库:OpenCV3编译配置
2016-01-20 23:55 更新: 关于Opencv3.1的lib文件 opencv_aruco310d.libopencv_bgsegm310d.libopencv_bioinspired3 ...
- Net文章汇总帖
DevExpress:Data Grid ExamplesHow to: Initialize Cells in Newly Created RowsHow to: Set a Cell Value ...
- (easy)LeetCode 202.Happy Number
Write an algorithm to determine if a number is "happy". A happy number is a number defined ...
- java爬虫实战
1.下载jxl.jar包,网上多的是 2.编写如下代码: package com.beyond.url; import java.io.BufferedReader;import java.io.Fi ...
- 如何下载spring-framework
http://jingyan.baidu.com/album/a65957f49670ac24e67f9b85.html?picindex=1
- CS中调用微软自带com组件实现音频视频播放(wf/wpf)
1.mp3播放器:工具箱中右键,在弹出的菜单中选择“选择项”,添加“com组件”,选择名称“windows Media Player",点击确定就会在工具箱新增一个“windows Medi ...