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

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

概述(本文代码已升级至Swift3) 项目中常常会使用  UINavigationController  对各个页面进行导航,导航栏左侧的返回按钮默认标题文字是上级页面的 title 。 但如果上级页面的标题很长,那么这个返回按钮字很多就会很丑:         当文字极其长时返回文字就会变成“back”:          一,要修改“返回按钮”的文字,有如下两种方式: 1,在父页面中设置 将 na (本文代码已升级至Swift3)
项目中常常会使用 UINavigationController 对各个页面进行导航,导航栏左侧的返回按钮默认标题文字是上级页面的 Title

但如果上级页面的标题很长,那么这个返回按钮字很多就会很丑:


当文字极其长时返回文字就会变成“back”:

一,要修改“返回按钮”的文字,有如下两种方式:

1,在父页面中设置
navigationItem.backbarbuttonItem设为自定义的 UIbarbuttonItem
这种方法所有的子界面返回时都变成了我们定义的文字,同时文字前面任然保留返回箭头。
1 2 let item = UIbarbuttonItem (Title: "返回" ,style: .plain,target: self nil ) .navigationItem.backbarbuttonItem = item
或者也可以直接把文字设为空字符串,这样就只有一个箭头了。 "".navigationItem.backbarbuttonItem = item

2,在子页面中设置
navigationItem.leftbarbuttonItem为自定义的 UIbarbuttonItem
这种方式可以给各个子页面返回按钮单独设置不同的文字,但文字前面是没有小箭头的。 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() leftbarBtn = action: #selector(backtoprevIoUs)) .navigationItem.leftbarbuttonItem = leftbarBtn } //返回按钮点击响应 backtoprevIoUs(){ .navigationController!.popVIEwController(animated: true ) } dIDReceiveMemoryWarning() { .dIDReceiveMemoryWarning() } }

二,修改“返回按钮”图标 从上面最后一个例子可以看到,在子页面修改返回按钮的话只有文字没有图片。如果想要使用自定义图片,或者图片文字都需要的话可以进行如下 *** 作:
1,如果只需要图片,不需要文字 比如我们想要用左侧这个图片(back@2x.png)作为返回图标
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: "" self action: #selector(backtoprevIoUs)) leftbarBtn.image = UIImage (named: "back" ) //用于消除左边空隙,要不然按钮顶不到最前面 spacer = (barbuttonSystemItem: .fixedspace,153)!important; background:none!important">nil ) spacer.wIDth = -10; .navigationItem.leftbarbuttonItems = [spacer,leftbarBtn] } //返回按钮点击响应 backtoprevIoUs(){ .navigationController!.popVIEwController(animated: true ) } dIDReceiveMemoryWarning() { .dIDReceiveMemoryWarning() } }

2,既需要图片也需要文字
这个时候就要通过创建 UIbutton来实现了
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 = CGRect (x:0,y:0,wIDth:65,height:30) button.setimage( UIImage (named: "back" ), for : .normal) button.setTitle( "返回" : .normal) button.addTarget( self : .touchUpInsIDe) leftbarBtn = UIbarbuttonItem (customVIEw: button) //用于消除左边空隙,要不然按钮顶不到最前面 spacer = nil ) spacer.wIDth = -10; } //返回按钮点击响应 backtoprevIoUs(){ .navigationController!.popVIEwController(animated: true ) } dIDReceiveMemoryWarning() { super .dIDReceiveMemoryWarning() } }

三,自定义leftbarbuttonItems导致左边缘滑动返回失效问题解决
通常使用 navigationController 跳转到另一页面时,除了可以点击左上角的返回按钮,还可以通过在屏幕左侧向右滑动来返回到上一层。但如果像上面样例一样,自定义了 self.navigationItem.leftbarbuttonItems 后会发现,滑动返回( swipe back )失效了。
解决办法: Swift - 自定义导航栏leftBarButtonItems导致滑动返回失效问题解决
原文出自:
www.hangge.com 转载请保留原文链接: http://www.hangge.com/blog/cache/detail_957.html 总结

以上是内存溢出为你收集整理的Swift - 修改导航栏“返回”按钮文字,图标全部内容,希望文章能够帮你解决Swift - 修改导航栏“返回”按钮文字,图标所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1062115.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-25
下一篇2022-05-25

发表评论

登录后才能评论

评论列表(0条)

    保存