Swift 設定navigation左右兩側按鈕

一個蘿蔔壹個坑發表於2018-01-03

我們以設定右側按鈕為例,左側方法類似

方法一,直接自定義文字

[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 即可

相關文章