Swift 设置navigation左右两侧按钮

我们以设置右侧按钮为例,左侧方法类似
方法一,直接自定义文字
[objc]view plaincopy

let item=UIBarButtonItem(title:"分享",style: UIBarButtonItemStyle.Plain,target:**self**,action:**nil**)

****self**.navigationItem.rightBarButtonItem=item**

方法二,使用系统图标
[objc]view plaincopy

let item1=UIBarButtonItem(barButtonSystemItem: UIBarButtonSystemItem.Done,target:**self**,action:**nil**)//此处使用的图标UIBarButtonSystemItem是一个枚举.大家可以尝试一下其他值出来是什么
****self**.navigationItem.rightBarButtonItem=item1**

方法三,使用自定义控件
这里我们自定义button为例来实现
[objc]view plaincopy

let btn1=UIButton(frame: CGRectMake(0, 0, 50, 30))
btn1.setTitle("完成",forState: UIControlState.Normal)
let item2=UIBarButtonItem(customView: btn1)
****self**.navigationItem.rightBarButtonItem=item2**

方法四,我们还可以直接放一张图片上去
[objc]view plaincopy

var img=UIImage(named:"test_img")
let item3=UIBarButtonItem(image: img,style: UIBarButtonItemStyle.Plain,target:**self**,action:**nil**)
****self**.navigationItem.rightBarButtonItem=item3**

如果只是按照以上方法实现,我们会发现出来的是一个纯色的图片,是因为iOS扁平化设计风格应用之后做成这样的,如果需要现实图片,我们可以设置一项

img=img?.imageWithRenderingMode(UIImageRenderingMode.AlwaysOriginal)

以上方法都是添加一个按钮
如果想一次添加多个该怎么做?
我们发现我们给右侧按钮赋值的方法是 rightBarButtonItem 其实还有属性 rightBarButtonItems
看代码
[objc]view plaincopy

let items1=UIBarButtonItem(barButtonSystemItem: UIBarButtonSystemItem.Pause,target:**self**,action:**nil**)
let items2=UIBarButtonItem(barButtonSystemItem: UIBarButtonSystemItem.Action,target:**self**,action:**nil**)
****self**.navigationItem.rightBarButtonItems=[items1,items2]**

如果想设置左侧按钮 直接 调用 self.navgigationItem.leftBarButtonItem 即可

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 我们以设置右侧按钮为例,左侧方法类似 方法一,直接自定义文字 [objc]view plaincopy letit...
    傻傻小萝卜阅读 4,225评论 1 0
  • 1.不可变数组转变为可变数组声明实例变量的数组 必须记得实现 对于遍历数组找到对象后 如果还需要查找 记得先结束 ...
    小新xin阅读 764评论 0 1
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,647评论 25 708
  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 12,259评论 4 61
  • 不经意地,脑子里总浮现出过去的一些事情。 上小学的时候,不是每顿都能吃上米饭。每天早上,妈妈都会煮上一大锅番薯,番...
    Aylwyn阅读 610评论 0 2