การเพิ่ม Navigation Bar โดยโปรแกรม (ไม่ใช้ Storyboard) ทำใน viewWillLayoutSubviews
ขั้นตอน
- ดึงความกว้างของ view
- สร้าง UINavigationBar กว้างเท่า view สูง 44 pt
- เพิ่มเข้า view hierarchy
- (ทางเลือก) เพิ่ม title และ button
โค้ดตัวอย่าง
class ViewController: UIViewController {
override func viewWillLayoutSubviews() {
let width = self.view.frame.width
let navigationBar = UINavigationBar(frame: CGRect(x: 0, y: 0, width: width, height: 44))
self.view.addSubview(navigationBar)
let navigationItem = UINavigationItem(title: "Navigation bar")
let doneBtn = UIBarButtonItem(barButtonSystemItem: .done, target: nil, action: #selector(selectorX))
navigationItem.rightBarButtonItem = doneBtn
navigationBar.setItems([navigationItem], animated: false)
}
override func viewDidLoad() {
super.viewDidLoad()
}
@objc func selectorX() { }
}
ผลลัพธ์
Navigation Bar แสดงที่ด้านบนพร้อม title และปุ่ม Done ด้านขวา
รูปภาพตัวอย่าง UI ถูกละเว้น