Ответ 1
Попробуйте добавить это:
let backButton = UIBarButtonItem(title: "", style: UIBarButtonItemStyle.Plain, target: navigationController, action: nil)
navigationItem.leftBarButtonItem = backButton
Я хочу скрыть кнопку "Назад" при переходе с одного вида на другой. Я прочитал вопросы по этой проблеме, и каждый ответ был "use hidesBackButton
". Проблема с этим:
когда я помещаю его в viewDidLoad/viewWillAppear, прямая стрелка кнопки скрывается, но строка "Назад" не делает.
когда я помещаю его в viewDidAppear, кнопка возврата исчезает, но она видима пользователю
Как я могу это исправить?
Изменить:
Вот как вы можете реплицировать эту проблему (или ошибку?)
Создайте новое приложение с вкладками с Swift в Xcode. В приложении FirstViewController.swift используйте функциюSegueWithIdentifier для перехода к второму контроллеру представления. В SecondViewController.swift скрыть навигационную панель назад с помощью hidesBackButton, и вы увидите, в чем проблема.
Попробуйте добавить это:
let backButton = UIBarButtonItem(title: "", style: UIBarButtonItemStyle.Plain, target: navigationController, action: nil)
navigationItem.leftBarButtonItem = backButton
Чтобы скрыть кнопку "Назад" с помощью последней версии Swift:
self.navigationItem.setHidesBackButton(true, animated: false)
Вы можете использовать приведенный ниже код для скрытия кнопки UINavigationBar
.
Swift 3;
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
self.navigationItem.hidesBackButton = true
}
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
}
Попробуйте добавить это, это сработало для меня
navigationItem.hidesBackButton = true
это сработало для меня
navigationController?.navigationBar.topItem?.hidesBackButton = true
Это сработало для меня:
override func viewWillAppear(animated: Bool)
{
super.viewWillAppear(animated)
self.tabBarController?.navigationItem.hidesBackButton = true
}