
项目中常常会使用 UINavigationController 对各个页面进行导航,导航栏左侧的返回按钮默认标题文字是上级页面的 Title 。
但如果上级页面的标题很长,那么这个返回按钮字很多就会很丑:
当文字极其长时返回文字就会变成“back”:
一,要修改“返回按钮”的文字,有如下两种方式:
1,在父页面中设置
将 navigationItem.backbarbuttonItem设为自定义的 UIbarbuttonItem
这种方法所有的子界面返回时都变成了我们定义的文字,同时文字前面任然保留返回箭头。
| 1 2 | let item = UIbarbuttonItem (Title: "返回" ,style: .plain,target: self nil ) .navigationItem.backbarbuttonItem = item |
2,在子页面中设置
将 navigationItem.leftbarbuttonItem为自定义的 UIbarbuttonItem
这种方式可以给各个子页面返回按钮单独设置不同的文字,但文字前面是没有小箭头的。
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 - 修改导航栏“返回”按钮文字,图标所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)