ในการเพิ่มแถบการนำทางโดยทางโปรแกรม เราจะดำเนินการตามขั้นตอนต่างๆ ที่กล่าวถึงด้านล่าง เราจะทำสิ่งนี้ในเมธอด ViewWillLayoutSubviews ของ viewController ของเรา
รับความกว้างของมุมมองปัจจุบัน
let width = self.view.frame.width
การสร้างแถบการนำทางที่มีความกว้างของมุมมองปัจจุบันและความสูง 44 พิกเซล ซึ่งเป็นความสูงเริ่มต้นของแถบนำทาง
let navigationBar: UINavigationBar = UINavigationBar(frame: CGRect(x: 0, y: 0, width: width, height: 44))
เพิ่มแถบการนำทางที่สร้างขึ้นใหม่ในมุมมองของเรา
self.view.addSubview(navigationBar)
เราสามารถขยายตัวอย่างนี้เพิ่มเติมเพื่อเพิ่มชื่อและปุ่มในมุมมองของเรา ผลลัพธ์ที่สมบูรณ์ควรมีลักษณะเหมือนคลาสด้านล่าง
class ViewController: UIViewController { override func viewWillLayoutSubviews() { let width = self.view.frame.width let navigationBar: UINavigationBar = 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: UIBarButtonItem.SystemItem.done, target: nil, action: #selector(selectorX)) navigationItem.rightBarButtonItem = doneBtn navigationBar.setItems([navigationItem], animated: false) } override func viewDidLoad() { super.viewDidLoad() } @objc func selectorX() { } }
เมื่อเรารันตัวอย่างนี้ ผลลัพธ์ของเราควรมีลักษณะดังนี้