RightBarButtonItem не отображается, когда leftBarButtonItem работает нормально - PullRequest
0 голосов
/ 21 мая 2019

В моем приложении у меня есть толчок от HomeViewController до EditProfileViewController, который должен иметь кнопку возврата в виде leftBarItem и настройку в виде rightBarItem. Кнопка возврата отображается нормально, но нужный элемент отсутствует. Эти ViewControllers вживую происходят в MainNavigationController, в котором есть панель навигации.

Я попытался определить rightBarButton в ViewDidLoad из EditProfileVC, я также попытался добавить rightBarItem в раскадровку для контроллера View.


    let buttonItem = UIBarButtonItem(image: settingsIcon, style: .plain, target: self, action: #selector(settingsPressed))
    buttonItem.tintColor = UIColor(.settingsIconTint)
    navigationItem.rightBarButtonItem = buttonItem

Интересно, что если я изменю правую панель на элемент левой панели, кнопка «Назад» будет заменена настройкой cog и работает как я ожидаю, но я не могу вернуться на главную страницу.


    let buttonItem = UIBarButtonItem(image: settingsIcon, style: .plain, target: self, action: #selector(settingsPressed))
    buttonItem.tintColor = UIColor(.settingsIconTint)
    navigationItem.leftBarButtonItem = buttonItem

1 Ответ

1 голос
/ 21 мая 2019

Чтобы установить rightBarButtonItem в navigationBar,

class HomeViewController: UIViewController {
    @IBAction func openEditVC(_ sender: UIButton) {
        if let controller = UIStoryboard(name: "Main", bundle: nil).instantiateViewController(withIdentifier: "EditProfileViewController") as? EditProfileViewController {
        self.navigationController?.pushViewController(controller, animated: true)
        }
    }
}

class EditProfileViewController: UIViewController {
    override func viewWillAppear(_ animated: Bool) {
        super.viewWillAppear(animated)
        let buttonItem = UIBarButtonItem(title: "Settings", style: .plain, target: self, action:  #selector(settingsPressed))
        buttonItem.tintColor = .red
        navigationItem.rightBarButtonItem = buttonItem
    }

    @objc func settingsPressed() {
        print("Setting Pressed")
    }
}

В приведенном выше коде я добавил UIBarButtonItem с title Settings как rightBarButtonItem из navigationBar.

Не нужно настраивать leftBarButtonItem не требуется.Back button добавлено по умолчанию.

Снимок экрана:

enter image description here

В случае, если оно не удовлетворяетваше требование, добавьте скриншот того, что ожидается, чтобы я мог помочь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...