目标 : NavigationController导航的做用和使用php
程序效果图以下 :ios
程序启动第一个 view 上面包含了一个 NavigationController 。为了区别视图界面,咱们在第一个放了一个lable title为:rootView 第二个视图中 放了一个 lable title为two,app
同时第一个视图中还放了一个 button 点击button 会跳入到第二个 视图中 ,并能够在 第二个视图中 点击 NavigationController 中的 root View(系统自动生成) 按钮 返回到 第一个视图中,这就是 NavigationController的做用。iphone
NavigationController 是建立分层应用程序的主要工具,它在管理在管理以及换入,换出多个视图方面 和 TabBarController 比较相似,不一样的地方是 NavigationController是做为栈(stack)来实现的。根视图控制器在堆栈最底层,接下来入栈的是General视图控制器和Auto-Lock视图控制器。能够调用 pushViewControllerAnimated:方法将视图控制器推入栈顶,也能够调用popViewControllerAnimated:方 法将视图控制器弹出堆栈 以下图:编辑器
此图摘自于互联网ide
UINavigationController的结构组成工具
看下图,UINavigationController有Navigation bar ,Navigation View ,Navigation toobar等组成。spa
此图摘自于互联网code
下面咱们使用控件来实现一次 :对象
为了让我更清楚的了解NavigationController的用法,咱们建立一个空的 ios application 项目。
启动Xcode 工具 建立一个新的工程, ios-》application -》 empty application
填写工程信息 , 我这里项目名称起名为 : iphone_Sample_Navigation
class prefix 起名为 : Nav 下面复选框部分 所有 保持不选中状态,以下图:
点击 next 点击 选择保存位置 。
建立好 项目后, 开始步入正题 。
1: 首先建立一个 空的 xib 视图文件, 在视图文件中添加 一个UINavigationController
点击Xcode中的项目目录 ,右键 new file -》 ios -》User Interface -》 Empty 点击 next, 选择 Device family 为 iphone 点击next 填写文件名,为 ”NavigationViewContoller“ 其余保持默认。 点击建立 。
建立后 Xcode 为咱们生成了 一个 NavigationViewContoller.xib 文件 , 点击 打开它 。咱们发现 该 xib 视图文件中是空的 ,不用担忧 咱们拖一个Navigation Contoller组件进去,此视图将做为咱们的根视图控制器,它在堆栈最底层的。
如图 :
2:和委托器创建链接。即便用委托器来管理咱们的 NavigationController 在上图界面下打开 助理编辑器,把 NavigationController 组件以输出口(IBOutlet)的方式链接到 委托器的.h 文件中去。如图:
上图中 红色 框框标示的部分为 创建链接后的 输出口。 并在委托器的 .m 文件中 生成相应的声明管理方法。
3: 打开咱们的委托器。(这里为:NavAppDelegate.m)初始化 NavigationController 对象,并添加到委托中的view 中,这时 NavigationController 对象成为咱们的根视图控制器对象了。 代码以下:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
self.window = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]] autorelease];
[[NSBundle mainBundle]loadNibNamed:@"NavigationViewContoller" owner:self options:nil];
[self.window addSubview:self.naviGationController.view];
self.window.backgroundColor = [UIColor whiteColor];
[self.window makeKeyAndVisible];
return YES;
}
上面代码中,蓝色代码部分 为核心代码 。
启动咱们的 模拟器, 运行程序,就能够看到咱们的 NavigationController视图界面了。
细心的童鞋 发现 怎么咱们的NavigationController 的 头部没有标题呢。 呵呵是的,咱们还没设置标题了 ,打开xib视图界面,依次展开左侧Objects栏目中的 NavigationController 选中 Navigation ltem 对象,打开咱们的属性检查器,就会看到咱们的 title 属性了(以下图), 设置它就能够看到 NavigationController 的头部标题了, 赶快去试试吧。
接着 咱们来试试多视图跳转。 咱们须要在建立一个 视图 controller , 选中Xcode中的项目目录 右键 -》 new file -》Cocoa Touch -》Objective -C class 建立一个 带xib的controller 这里命名为 :NavTwoViewController 继承至 UIViewController 并选中 With XIB for user interface 复选框 建立。
打开 NavTwoViewControlle,xib 文件,在这个文件咱们只须要放个 label 来标示为第二个视图界面便可
保存并关闭。
继续打开咱们NavigationViewContoller.xib 视图界面 为咱们的视图界面拖放一个Button按钮。并给它设置个title属性,一样点开属性检查器,在属性检查器,有title 属性,这个按钮的做用是 ,点击它 跳到咱们刚刚建立的 view
拖放好button 后 须要为 改链接建立一个 动做链接, 还在在这个视图界面下,打开助理编辑器,把这个button 以Action 方式链接到 委托器的 头文件中,注意:Connect: 须要选择为Action 以下图 :
上图中为 链接后成功后的界面, 此时在委托器的.m 文件中也会为咱们生成这个方法,咱们实现这个方法,来实现跳转 。代码以下 :
- (IBAction)gotoView:(id)sender {
NavTwoViewController *root=[[NavTwoViewController alloc]initWithNibName:@"NavTwoViewController" bundle:nil];
root.title=@"two view";
[self.naviGationController pushViewController:root animated:YES];
}
要在 委托器类(NavAppDelegate.m)中使用 NavTwoViewController 对象 还须要在 委托器的 开始引入这个类,代码以下(蓝色部分):
#import "NavAppDelegate.h"
#import "NavTwoViewController.h"
@implementation NavAppDelegate
保存 运行 便可 , root.title=@"two view"; 为第二个界面设置 导航title
×××地址 :
https://blog.51cto.com/ext/down_att.php?aid=36077&code=1352