Подтвердить что ты не робот

Скрыть кнопку возврата в навигационной панели с помощью hidesBackButton в Swift

Я хочу скрыть кнопку "Назад" при переходе с одного вида на другой. Я прочитал вопросы по этой проблеме, и каждый ответ был "use hidesBackButton". Проблема с этим:

  • когда я помещаю его в viewDidLoad/viewWillAppear, прямая стрелка кнопки скрывается, но строка "Назад" не делает.

  • когда я помещаю его в viewDidAppear, кнопка возврата исчезает, но она видима пользователю

Как я могу это исправить?

Изменить:

Вот как вы можете реплицировать эту проблему (или ошибку?)
Создайте новое приложение с вкладками с Swift в Xcode. В приложении FirstViewController.swift используйте функциюSegueWithIdentifier для перехода к второму контроллеру представления. В SecondViewController.swift скрыть навигационную панель назад с помощью hidesBackButton, и вы увидите, в чем проблема.

4b9b3361

Ответ 1

Попробуйте добавить это:

let backButton = UIBarButtonItem(title: "", style: UIBarButtonItemStyle.Plain, target: navigationController, action: nil)
navigationItem.leftBarButtonItem = backButton

Ответ 2

Чтобы скрыть кнопку "Назад" с помощью последней версии Swift:

self.navigationItem.setHidesBackButton(true, animated: false)

Ответ 3

Вы можете использовать приведенный ниже код для скрытия кнопки UINavigationBar.

Swift 3;

override func viewWillAppear(_ animated: Bool) {
    super.viewWillAppear(animated)
    self.navigationItem.hidesBackButton = true
}

Ответ 4

override func viewDidLoad() {
    super.viewDidLoad()
    // Do any additional setup after loading the view.

    self.navigationController?.navigationBarHidden = false
    var button: UIButton = UIButton()
    button.setImage(UIImage(named: "person-icon.jpg"), forState: .Normal)
    button.frame = CGRectMake(0, 0, 25, 25)
    button.targetForAction("actioncall", withSender: nil)
    var rightItem:UIBarButtonItem = UIBarButtonItem()
    rightItem.customView = button
    self.navigationItem.rightBarButtonItem = rightItem

    let backButton = UIBarButtonItem(title: "", style: UIBarButtonItemStyle.Plain, target: navigationController, action: nil)
    navigationItem.leftBarButtonItem = backButton
}

override func viewWillAppear(animated: Bool) {
    let backButton = UIBarButtonItem(title: "", style: UIBarButtonItemStyle.Plain, target: navigationController, action: nil)
    navigationItem.leftBarButtonItem = backButton
}

Ответ 5

Попробуйте добавить это, это сработало для меня

navigationItem.hidesBackButton = true

Ответ 6

это сработало для меня

navigationController?.navigationBar.topItem?.hidesBackButton = true

Ответ 7

Это сработало для меня:

override func viewWillAppear(animated: Bool)
{
    super.viewWillAppear(animated)

    self.tabBarController?.navigationItem.hidesBackButton = true
}