我们使用代码创建 navigationBar 并为该 navigationBar 设置 navigationItem。
但是,按 navigationItem 没有反应。
override func viewDidLoad() {
super.viewDidLoad()
view.backgroundColor = UIColor.white
let navBar: UINavigationBar = {
let navBar = UINavigationBar()
navBar.frame = CGRect(x: 0, y: 44, width: view.frame.width, height: navBar.frame.height)
navBar.barTintColor = UIColor.white
let navItem = UINavigationItem()
let saveButton = UIBarButtonItem(barButtonSystemItem: .save, target: self, action: #selector(saveBook))
navItem.rightBarButtonItem = saveButton
let cancelButton = UIBarButtonItem(barButtonSystemItem: .cancel, target: self, action: #selector(cancel))
navItem.leftBarButtonItem = cancelButton
navItem.rightBarButtonItem?.isEnabled = true
navItem.leftBarButtonItem?.isEnabled = true
navItem.title = "書籍追加"
navBar.pushItem(navItem, animated: true)
return navBar
}()
view.addSubview(navBar)
最佳答案
显然这段代码不正确,因为框架仍然是 CGRect.zero。所以你将高度设置为 0。你没有得到你想要的。
不在这里:
navBar.frame = CGRect(x: 0, y: 44, width: view.frame.width, height: navBar.frame.height)
如果你添加代码,你就会明白我的意思,因为你看不到导航栏?:
navBar.clipsToBounds = true
view.addSubview(navBar)
你可以试试:
navBar.frame = CGRect(x: 0, y: 44, width: view.frame.width, height: 44)
关于ios - 无法在 Swift4 的 UINavigationBar 上推送 UINavigationItem,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54139266/