не может нажать UINavigationItem на UINavigationBar в Swift4 - PullRequest
0 голосов
/ 11 января 2019

Мы создаем панель навигации с кодом и устанавливаем элемент навигации для этой панели навигации.

Однако нажатие навигационного элемента не реагирует.

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)

1 Ответ

0 голосов
/ 11 января 2019

Очевидно, что этот код неверен, так как фрейм все еще CGRect.zero. Таким образом, вы устанавливаете высоту на 0. Вы не получили то, что хотели.

не здесь:

  navBar.frame = CGRect(x: 0, y: 44, width: view.frame.width, height: navBar.frame.height)

Если вы добавите код, вы поймете, что я имею в виду, поскольку не видите navBar?:

    navBar.clipsToBounds = true
    view.addSubview(navBar)

Вы можете попробовать:

  navBar.frame = CGRect(x: 0, y: 44, width: view.frame.width, height: 44)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...