Ограничить панель навигации от скрытия при нажатии кнопки - PullRequest
0 голосов
/ 17 апреля 2020

Я хочу скрыть панель навигации при нажатии. Поэтому я использовал этот метод навигационной панели.

 self.navigationController?.hidesBarsOnTap = true

Имейте 2 кнопки на экране, и когда я нажимаю на эту кнопку для выполнения какого-либо действия, она также скрывает панель навигации. Я думаю, что нажатие кнопки считается нажатием.

Подскажите, пожалуйста, это правильное поведение? Также, пожалуйста, дайте мне знать, если есть какой-либо способ ограничить это. Я не хочу скрывать панель навигации при нажатии кнопки, остальные части экрана будут в порядке.

1 Ответ

0 голосов
/ 17 апреля 2020

Вы можете создать свою пользовательскую кнопку и обрабатывать прикосновения, чтобы включить / отключить скрытие панелей, например:

class BarHideOnTapButton : UIButton {
    weak var navigationController: UINavigationController?

    override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
        super.touchesBegan(touches, with: event)
        self.navigationController?.hidesBarsOnTap = false
    }

    override func touchesEnded(_ touches: Set<UITouch>, with event: UIEvent?) {
        super.touchesEnded(touches, with: event)
        self.navigationController?.hidesBarsOnTap = true
    }
}

class ViewController: UIViewController {
    @IBOutlet var button: BarHideOnTapButton?

    override func viewDidLoad() {
        super.viewDidLoad()

        self.button?.navigationController = self.navigationController

        self.navigationController?.hidesBarsOnTap = true
    }
...
}
...