导航控制器(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 ...
随机推荐
- ViewPager切换动画
http://blog.csdn.net/lmj623565791/article/details/38026503 http://www.cnblogs.com/tianzhijiexian/p/4 ...
- 关于position的疑惑
我到现在也不是很清楚position的效果会是什么,或者是什么情况下需要指明为relatieve什么情况下又需要absolute呢? <div style="position:rela ...
- Hibernate注解:一对一主键关联
情形:两个表,my_site和my_site_company,通过主键site_id唯一关联.my_site的主键是自动增加,my_site_company的主键依赖于my_site. # # Sou ...
- LeetCode 58. Length of Last Word
Given a string s consists of upper/lower-case alphabets and empty space characters ' ', return the l ...
- vmstat 命令详解 转载
vmstat 命令详解 procs:r-->在运行队列中等待的进程数b-->在等待io的进程数w-->可以进入运行队列但被替换的进程 memoyswap-->现时可用的交换 ...
- JQuery基础教程:事件(上)
在页面加载后执行任务 之前我们已经知道了$(document).ready()是jQuery基于页面加载执行任务的一种主要方式,但是要知道原生的window.onload事件也可以实现相同的 ...
- A手机等的网络udp广播,收到广播以后回复udp消息
B手机:向A手机发送一条消息,等待A回复 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions: ...
- MFC学习 修改窗口样式
1. 在PreCreateWindow中可用CREATESTRUCT cs, cs.lpszName修改窗口标题, cs.lpszClass = AfxRegisterWndClass 修改图标与样式 ...
- [实战经验]Macbook pro 苹果系统换window系统
1. Macbook的window软件驱动备份 通过Boot Camp助手进行window支持苹果驱动下载 2. 拆机把SSD固态硬盘放在主盘位置,把苹果的机械盘放在光驱位置 ...
- MXNet官网案例分析--Train MLP on MNIST
本文是MXNet的官网案例: Train MLP on MNIST. MXNet所有的模块如下图所示: 第一步: 准备数据 从下面程序可以看出,MXNet里面的数据是一个4维NDArray. impo ...