Swift - 修改导航栏“返回”按钮文字,图标
Swift - 修改导航栏“返回”按钮文字,图标




1,在父页面中设置
将navigationItem.backBarButtonItem设为自定义的UIBarButtonItem
这种方法所有的子界面返回时都变成了我们定义的文字,同时文字前面任然保留返回箭头。

1
2
|
let item = UIBarButtonItem (title: "返回" , style: . Plain , target: self , action: nil ) self .navigationItem.backBarButtonItem = item; |
或者也可以直接把文字设为空字符串,这样就只有一个箭头了。

1
2
|
let item = UIBarButtonItem (title: "" , style: . Plain , target: self , action: nil ) self .navigationItem.backBarButtonItem = item; |
2,在子页面中设置
将navigationItem.leftBarButtonItem为自定义的UIBarButtonItem
这种方式可以给各个子页面返回按钮单独设置不同的文字,但文字前面是没有小箭头的。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
import UIKit class DetailViewController : UIViewController { override func viewDidLoad() { super .viewDidLoad() let leftBarBtn = UIBarButtonItem (title: "返回" , style: . Plain , target: self , action: "backToPrevious" ) self .navigationItem.leftBarButtonItem = leftBarBtn } //返回按钮点击响应 func backToPrevious(){ self .navigationController?.popViewControllerAnimated( true ) } override func didReceiveMemoryWarning() { super .didReceiveMemoryWarning() } } |
二,修改“返回按钮”图标


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
|
import UIKit class DetailViewController : UIViewController { override func viewDidLoad() { super .viewDidLoad() let leftBarBtn = UIBarButtonItem (title: "" , style: . Plain , target: self , action: "backToPrevious" ) leftBarBtn.image = UIImage (named: "back" ) //用于消除左边空隙,要不然按钮顶不到最前面 let spacer = UIBarButtonItem (barButtonSystemItem: . FixedSpace , target: nil , action: nil ) spacer.width = -10; self .navigationItem.leftBarButtonItems = [spacer, leftBarBtn] } //返回按钮点击响应 func backToPrevious(){ self .navigationController?.popViewControllerAnimated( true ) } override func didReceiveMemoryWarning() { super .didReceiveMemoryWarning() } } |
2,既需要图片也需要文字

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
|
import UIKit class DetailViewController : UIViewController { override func viewDidLoad() { let button = UIButton (type: . System ) button.frame = CGRectMake (0, 0, 65, 30) button.setImage( UIImage (named: "back" ), forState: . Normal ) button.setTitle( "返回" , forState: . Normal ) button.addTarget( self , action: "backToPrevious" , forControlEvents: . TouchUpInside ) let leftBarBtn = UIBarButtonItem (customView: button) //用于消除左边空隙,要不然按钮顶不到最前面 let spacer = UIBarButtonItem (barButtonSystemItem: . FixedSpace , target: nil , action: nil ) spacer.width = -10; self .navigationItem.leftBarButtonItems = [spacer,leftBarBtn] } //返回按钮点击响应 func backToPrevious(){ self .navigationController?.popViewControllerAnimated( true ) } override func didReceiveMemoryWarning() { super .didReceiveMemoryWarning() } } |
三,自定义leftBarButtonItems导致左边缘滑动返回失效问题解决
通常使用 navigationController 跳转到另一页面时,除了可以点击左上角的返回按钮,还可以通过在屏幕左侧向右滑动来返回到上一层。但如果像上面样例一样,自定义了 self.navigationItem.leftBarButtonItems 后会发现,滑动返回(swipe back)失效了。
原文出自:www.hangge.com 转载请保留原文链接:http://www.hangge.com/blog/cache/detail_957.html
Swift - 修改导航栏“返回”按钮文字,图标的更多相关文章
- Swift - 修改导航栏“返回”按钮文字和图标 /手势冲突解决/响应范围
iOS11之前 修改导航栏“返回”按钮文字,图标 https://blog.csdn.net/u012701023/article/details/50264265 iOS11 完美解决导航栏按钮偏移 ...
- ios 修改导航栏返回按钮的图片
修改导航栏返回按钮的图片 方法1: [UINavigationBar appearance].backIndicatorTransitionMaskImage = [UIImage imageName ...
- Swift - 重写导航栏返回按钮
// 重写导航栏返回按钮方法 func configBackBtn() -> Void { // 返回按钮 let backButton = UIButton(type: .custom) // ...
- iOS 设置导航栏 返回按钮文字隐藏
//隐藏返回按钮文字 [[UIBarButtonItem appearance] setBackButtonTitlePositionAdjustment:UIOffsetMake(0, -60) f ...
- ios 修改导航条返回按钮
ios 修改导航条返回按钮 方式一:使用系统的:可以更改系统的文字:以及通过设置导航条的颜色来达到预期的效果 UIBarButtonItem *backBtns = [[UIBarButtonItem ...
- IOS 改变导航栏返回按钮的标题
IOS 改变导航栏返回按钮的标题 下午又找到了一个新的方法 这个方法不错 暂时没有发现异常的地方. 新写的App中需要使用UINavigationController对各个页面进行导航,但由于第一 ...
- iOS7 修改导航系统默认返回按钮文字及颜色
//iOS7 修改系统默认返回按钮文字及颜色 UIBarButtonItem *item = [[UIBarButtonItem alloc] initWithTitle:@"返" ...
- 转载 iOS拦截导航栏返回按钮事件的正确方式
原文链接:http://www.jianshu.com/p/25fd027916fa 当我们使用了系统的导航栏时,默认点击返回按钮是 pop 回上一个界面.但是在有时候,我们需要在点击导航栏的返回按钮 ...
- iOS拦截导航栏返回按钮事件的正确方式
当我们使用了系统的导航栏时,默认点击返回按钮是 pop 回上一个界面.但是在有时候,我们需要在点击导航栏的返回按钮时不一定要 pop 回上一界面,比如一个视频播放界面,进入横屏后,默认点击返回按钮仍然 ...
随机推荐
- Atcoder B - Boxes 玄学 + 数学
http://agc010.contest.atcoder.jp/tasks/agc010_b 预处理出每两个相邻的数的差值,那么首先知道是一共取了sum / ((1 + n) * n / 2)次,因 ...
- 把List<Map<String,Object>>转成Map<String,Object>
Map<String, Object> parmMap = new HashMap<String, Object>(); //定义一个用于存储强转后的Map List<M ...
- Html标签杂记
<html> <head> <title> </title> </head> <body> </body> < ...
- 构建微服务开发环境2————安装IntelliJ IDEA
[内容指引] 下载IntelliJ IDEA安装包: Mac版IDEA安装: Windows版IDEA按装. 一.下载IntelliJ IDEA安装包 访问官方网址:https://www.jetbr ...
- JavaScript实现JQuery的功能
- 网盘资源搜索的一些知识 C#
针对互联网盘上的资源进行搜索查找.写一个网盘资源搜索的要点主要有以下几点. 1.这个网盘资源搜索的原理就是利用互联网搜索引擎的site 命令. 其次就是针对网页链接进行提取以及处理. 首先就是编写一个 ...
- Django系列:(1)PyCharm下创建并运行我们的第一个Django工程
准备工作: 假设读者已经安装好python 2x或3x,以及安装好Django,以及Pycharm. 我的配置: – Python 2.7.11 – Pycharm Professional 5.0. ...
- linux命令规范
Linux文件后缀: 系统文件:*.conf *.rpm 系统与脚本:*.c *.php 存档文件和压缩文件:*.tar *.gz ……… Linux文件命名规则: 1.大小写敏感 2.除 ...
- Java.io.ObjectOutputStream.writeObject()方法实例
java.io.ObjectOutputStream.writeObject(Object obj) 方法将指定对象写入ObjectOutputStream.该对象的类,类的签名,以及类及其所有超类型 ...
- Farseer.net轻量级开源框架 中级篇:BasePage、BaseController、BaseHandler、BaseMasterPage、BaseControls基类使用
导航 目 录:Farseer.net轻量级开源框架 目录 上一篇:Farseer.net轻量级开源框架 中级篇: UrlRewriter 地址重写 下一篇:Farseer.net轻量级开源框架 中 ...