文章标题

原创 2015年11月19日 18:43:34

7.导航控制器

1.导航控制器的功能介绍

2.如何使用导航控制器实现界面之间的跳转

3.导航条的设置

4.导航条上控件的设置

5.工具栏的使用

什么是导航控制器?

简述:UINavigation是导航控制器。用于构建分层应用程序,管理多个视图的换入和换出,自身提供视图切换动画效果。导航控制器包含:NavigationBar(导航栏),内容视图,工具栏(UIToolBar)。

导航控制器作用

简述:利用UINavigationController,可以轻松地管理多个控制器,轻松完成控制器之间的切换,典型例子就是系统自带的“设置”应用。

如图:
导航示例

创建一个界面

代码

FirstViewController *fvc = [[FirstViewController alloc] init];

代码说明
创建一个UIviewController。用于推出。

使用导航控制器显示这个界面

简述:以导航的控制器的方式推出新的页面。

代码

UINavigationController *nc = [[UINavigationController alloc] initWithRootViewController:fvc];
self.window.rootViewController = nc;//把导航控制器作为根视图控制器

代码说明
以导航的方式推出,并把导航控制器作为跟视图控制器。如果不以导航推出,那么所推出的控制器将没有相关导航操作和功能。 比如使用 [self presentViewController:fvc animated:YES completion:nil];

使用push方法切换到新的界面

简述: 这也是推出新页面的一种方式,但是要退出新的页面,本身得是一个带导航的页面。

代码

SecondViewController *svc = [[SecondViewController alloc] init];//拿到导航控制器的指针
 [self.navigationController pushViewController:svc animated:YES];

使用pop方法返回前一个界面

简述:

代码

[self.navigationController popViewControllerAnimated:YES];

代码说明
如果使用present 推出,那么返回对应的为 [self dismissViewControllerAnimated:YES completion:nil];

pop方法的几种形式

简述:常用的有三种方式。

代码

[self.navigationController popToRootViewControllerAnimated:YES];//回到根视图控制器
[self.navigationController popToViewController:fvc animated:YES];//回到任意一个控制器,“fvc”换为对应控制器的指针
[self.navigationController popViewControllerAnimated:YES];//回到上一个控制器

代码说明
可根据需要进行设置。

设置导航条风格

简述:可以进行很多设置,包括设置标题(文字),设置背景,图片标题,添加文本按钮,添加系统样式的按钮,添加自定义的按钮,下个界面的左侧添加返回的按钮等等。

设置导航条背景图

简述:可以给导航条增加背景图片。

代码

[self.navigationController.navigationBar setBackgroundImage:[UIImage imageNamed:@"nav_bg.png"] forBarMetrics:UIBarMetricsDefault];

代码说明

设置导航条透明

简述:通过设置背景图片来达到透明效果。

代码

[self.navigationController.navigationBar setBackgroundImage:[UIImage imageNamed:@"nav_bargound.png"] forBarMetrics:UIBarMetricsCompact];//设置透明背景图
self.navigationController.navigationBar.shadowImage =[UIImage imageNamed:@"nav_bargound.png"];//隐藏导航下面的细线

代码说明
不能通过设置颜色来达到透明效果,因为导航默认是不透明的,设置背景色达不到改变背景色所需要的效果。

隐藏导航条

代码

self.navigationController.navigationBar.hidden=YES;

代码说明:
默认是YES

设置标题

简述:可以通过直接设置标题文字,也可以以子视图作为标题。

代码

//第一种方式,文字标题
self.title=@"这是标题";
//第二种方式,设置图片标题
UILabel *label=[[UILabel alloc]initWithFrame:CGRectMake(0, 0, 50, 30)];
label.text=@"这是标题";
label.backgroundColor=[UIColor greenColor];
label.textColor=[UIColor redColor];
self.navigationItem.titleView=label;//以label视图作为title

代码说明
第一种方式也可以在推出的时候进行设置。

左侧left Item

简述:

代码

//第一种方式
UIBarButtonItem *leftItem=[[UIBarButtonItem alloc]initWithTitle:@"返回" style:UIBarButtonItemStyleDone target:self action:@selector(buttonClick)];
self.navigationItem.leftBarButtonItem=leftItem;

//第二种方式
UIButton *button=[UIButton buttonWithType:UIButtonTypeCustom];
    button.frame=CGRectMake(0, 0, 30, 30);
    [button setTitle:@"返回" forState:UIControlStateNormal];
    [button addTarget:self action:@selector(buttonClick) forControlEvents:UIControlEventTouchUpInside];
    UIBarButtonItem *leftItem=[[UIBarButtonItem alloc]initWithCustomView:button];
    self.navigationItem.leftBarButtonItem=leftItem;

代码说明
在对应的buttonClick里实现方法,就可以实现相应的功能。使用第二种方式也可以以items的方式显示多个控件。

右侧right Item

简述:和左边item一样

代码

UIButton *rightButton=[UIButton buttonWithType:UIButtonTypeCustom];
    rightButton.frame=CGRectMake(0, 0, 50, 30);

    [rightButton setTitle:@"删除" forState:UIControlStateNormal];
    [rightButton setTitleColor:[UIColor redColor] forState:UIControlStateNormal];
    [self.view addSubview:rightButton];
    [rightButton addTarget:self action:@selector(buttonClick) forControlEvents:UIControlEventTouchUpInside];
    UIBarButtonItem *rightItem=[[UIBarButtonItem alloc]initWithCustomView:rightButton];
    self.navigationItem.rightBarButtonItem=rightItem;

代码说明
也可以以其他控件作为item,只需把button换为对应控件就可以。比如imageView。

如图:(系统的与自定义的)
系统导航示例
这里写图片描述
UInavigationItem

显示工具栏

简述:控制器下边的可以切换的选项称为工具栏

代码

[self.navigationController.toolbar setBackgroundImage:[UIImage imageNamed:@"toolBar"] forToolbarPosition:UIBarPositionAny barMetrics:UIBarMetricsDefault];

    UIBarButtonItem *item1 = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemBookmarks target:self action:@selector(itemClick:)];

    UIBarButtonItem *item2 = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFastForward target:self action:@selector(itemClick:)];

    UIBarButtonItem *item3 = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemPlay target:self action:@selector(itemClick:)];
    self.toolbarItems = @[item1, item2,item3];

代码说明
使用系统自带的工具栏功能进行创建,也可以进行自定义创建。

工具栏添加按钮

简述:导航控制器下边的称为工具栏。

代码

[self.navigationController.toolbar setBackgroundImage:[UIImage imageNamed:@"toolBar"] forToolbarPosition:UIBarPositionAny barMetrics:UIBarMetricsDefault];//设置工具栏设置背景图

    //创建工具栏选项
    UIBarButtonItem *item1 = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemBookmarks target:self action:@selector(itemClick:)];

    UIBarButtonItem *item2 = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFastForward target:self action:@selector(itemClick:)];

    UIBarButtonItem *item3 = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemPlay target:self action:@selector(itemClick:)];

    UIBarButtonItem *item4 = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:nil action:nil];

    //添加到toolbar 上
    self.toolbarItems = @[item1, item4, item2, item4, item3];
    self.navigationController.toolbarHidden=NO;//显示toolbar

代码说明
工具栏默认是隐藏,需要设为YES。

如图:
这里写图片描述

设置按钮间距

简述:当TabBar选项较少时,可以设置间距

代码

 UIBarButtonItem *item4 = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:nil action:nil];
    self.toolbarItems = @[item1, item4, item2, item4, item3];

代码说明

版权声明:本文为博主原创文章,未经博主允许不得转载。

wordpress 通过the_title()和get_the_title函数获取文章标题

the_title() 输出或返回当前文章标题。此标签用在主循环里。如果此文章是受密码保护的或者是私有的, 就会在文章标题前标记上"Protected:"或者"Private:"字样。 用法:...
  • xuplus
  • xuplus
  • 2014年08月25日 09:31
  • 3743

文章标题文章标题文章标题文章标题文章标题文章标题文章标题文章标题文章标题文章标题文章标题文章标题文章标题文章标题文章标题文章标题文章标题

文章正文文章正文文章正文文章正文文章正文文章正文文章正文文章正文文章正文文章正文文章正文文章正文文章正文文章正文文章正文文章正文文章正文文章正文文章正文文章正文文章正    文文章正文文章正文文章正文...
  • coolhomess
  • coolhomess
  • 2008年11月03日 10:14
  • 55

修改DEDECMS文章标题长度,解决DEDECMS文章标题显示不全

在用dede调用列表标题出来的时候,会发现标题文字字数显示不完全,那是因为dede默认标题出来长度是30个字符,为了让标题显示完整,要做以下修改!1、进入后台–系统–系统设置–系统基本参数–其他选项–...
  • yxwmzouzou
  • yxwmzouzou
  • 2015年04月29日 11:25
  • 10400

织梦列表页调用文章标题和摘要

【列表页调用文章标题和摘要】 显示效果: 代码如下: {dede: list titlelen='30' infolen='150'orderby='pubdate' limit=”...
  • cctv1937
  • cctv1937
  • 2015年07月01日 17:33
  • 3881

为你的wordpress文章标题添加图标

看到CSDN的文章标题前用“原/转”两个小图标来表示文件类型很简洁,于是也想到为自己的wordpress博客增加类似功能。     我想实现在我写文章选择分类目录时,若属于“原创”分类,则显示“...
  • linxiaojia
  • linxiaojia
  • 2014年11月22日 00:38
  • 868

正则表达式小试牛刀--匹配我的博文标题

正则表达式小试牛刀--匹配我的博文标题 作者:vpoet 日期:20150625 正则匹配,我以我的博客页面的博客标题为例:http://blog.csdn.net...
  • u013018721
  • u013018721
  • 2015年06月25日 09:22
  • 2826

wordpress 修改博客文章标题字体大小

运维wordpress过程中,遇到一个问题,博客文章的字体太大,却总是无法修改成功。 按照网络资料,修改h2对应的font-size的值,更新后却没有生效。这个问题折腾了好久让我头疼不已。用Chro...
  • dreamstone_xiaoqw
  • dreamstone_xiaoqw
  • 2017年09月05日 14:11
  • 520

让wordpress首页和分类列表页只显示文章标题列表

http://up2u.72pines.com/2009/07/rangwordpressshouyehefenleiliebiaoyezhixianshiwenzhangbiaotiliebiao/...
  • zzsg2005
  • zzsg2005
  • 2012年02月27日 10:20
  • 5023

用java提取不同类型的文章标题就要设计出不同的正则表达式

用java中提取不同类型的文本目录要设计出不同的正则表达式         最近,我从网上下载了一个用java编写的用正则表达式从文本文件中批量提取文本目录的程序。用该程序,我从《神墓》这本章回小说...
  • myhrrjava
  • myhrrjava
  • 2016年10月28日 10:29
  • 498

文章标题 文章标题 文章标题 文章标题

文章正文文章正文文章正文文章正文文章正文文章正文文章正文文章正文文章正文文章正文文章正文文章正文文章正文文章正文文章正文 文章正文文章正文文章正文文章正文文章正文文章正文文章正文文章正文文章正文文章正...
  • swordray
  • swordray
  • 2007年07月18日 18:33
  • 259
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:文章标题
举报原因:
原因补充:

(最多只允许输入30个字)