大家應該還記得昨天我們有說到今天會聊聊TableView Cell的內容,事不宜遲,
馬上來聊聊Navigation Bar吧(?
注意!!今天要講的不是TableView Cell哦,已經將主題改為Navigation Bar!
大家可以發現鬧鐘的新增與編輯都是靠最上面這兩顆按鈕來完成的,這兩顆按鈕其實有專屬的名稱分別是:
應該光看名稱就知道誰是誰了吧
那馬上使用Code來製作他們吧!
func setNavigation() {
//Left Button
let editButton = UIBarButtonItem(title: "編輯",
style: .plain,
target: self,
action: #selector(editAlarm))
editButton.tintColor = .orange
self.navigationItem.leftBarButtonItem = editButton
//Right Button
let addButton = UIBarButtonItem(image: UIImage(systemName: "plus"),
style: .plain,
target: self,
action: #selector(addAlarm))
addButton.tintColor = .orange
self.navigationItem.rightBarButtonItem = addButton
}
這邊來稍微說明一下Code的內容:
由於Navigation Bar的Button只接受UIBarButtonItem型態,因此這邊才會將Button宣告為UIBarButtonItem型態。
首先宣告一個名稱為editButton的變數,其型態為UIBarButtonItem,
UIBarButtonItem所使用的四個變數說明如下:
設定完後再將按鈕的顏色更改為橘色,之後再 assign 到 Navigation Bar Button 裡面。
右邊的按鈕基本上也是一樣的設定方式,唯一不同的是:右邊的按鈕是一個 + 符號的圖案
因此這邊使用 UIImage(systemNamed: "plus") 來實作一個圖案為 + 的按鈕。
UIImage(systemNamed: "...")是去Xcode的內建圖庫依照名稱去抓取相對應的圖片,
更多圖片名稱可以去載SF Symbol了解一下
到這邊按鈕基本上已經設定完成了,但是Xcode應該會報錯,因為我們還沒實作這兩顆按鈕按下的Function,
因此這邊先新增兩個沒有內容的Function:
@objc func editAlarm() {
}
@objc func addAlarm() {
}
OK,這樣應該就沒問題了,記得把設定 Navigation 的 Function 加進去 viewDidLoad()中哦!
override func viewDidLoad() {
super.viewDidLoad()
setViews()
setLayouts()
// Set Navigation
setNavigation()
}
執行專案後應該會呈現出下面這樣:
明天應該會來說說這兩顆按鈕的動作,明天見囉