在我們新增完NavigationBar的button
之後,我們需要給這些button設定按下之後的動作
+
Button我們需要這個Button可以做到的事就是,推送到我們已經創建好並且拉好物件的畫面,也就是新增鬧鐘頁面
// 因為我們前面是用指令新增的 NavigationBar的Button,所以我們要用 @objc 去宣告要給他的動作
// 前面給的動作為 addTapped,那我們就新增一個 function
@objc func addTapped() {
// 先把要推送到的目的地命名為一個常數,方便後面操作
let addAlarmVC = AddAlarmViewController()
// 那我們這邊跳轉頁面用到的是present,所以code會跟push不一樣
addAlarmVC.delegate = self
let navController = UINavigationController(rootViewController: addAlarmVC)
self.present(navController, animated: true, completion: nil)
}
編輯
按鈕左邊的編輯按鈕我需要他做的事,就是利用一個布林變數去控制編輯按鈕的樣式
// 首先我們要建立一個 isEditing 參數
var isEdting: Bool = false
@objc func editTapped() {
isEditing.toggle()
tableView.setEditing(isEditing, animated: true)
// 利用剛開始設定的布林參數做變動
navigationItem.leftBarButtonItem?.title = isEditing ? "完成" : "編輯"
// 遍歷所有當前可見的表格視圖單元格,並將其隱藏的開關控件設置為編輯狀態。
tableView.visibleCells.forEach { cell in
if let switchControl = (cell as? SecondTableViewCell)?.swAlarm {
switchControl.isHidden = isEditing
}
}
}
其實會放在那個位置其實就兩行 code
// 設定成我誠品畫面中的那樣,並且當中間tableView存放鬧鐘的地方往上滑動時,他會變為在左右 Button 的中間
navigationController?.navigationBar.prefersLargeTitles = true
// 然後再設定我們需要他顯示什麼字,比如我們設定的字為鬧鐘
navigationItem.title = "鬧鐘"
補充,約束很重要,要拉好,不然就算code設定了,效果也會跟預期的不一樣
把 NavigationBar 需要的東西完善