首页 文章

使用Swift中的hidesBackButton隐藏导航栏中的后退按钮

提问于
浏览
26

我想在从一个视图转换到另一个视图时隐藏后退按钮 . 我读了关于这个问题的问题,每个答案都是“使用 hidesBackButton ” . 这个问题是:

  • 当我把它放在viewDidLoad / viewWillAppear时,后退按钮箭头隐藏但字符串“Back”没有 .

  • 当我把它放在viewDidAppear中时,后退按钮消失但对用户可见

我怎样才能解决这个问题?

Edit:

以下是如何复制此问题(或错误?)
在Xcode中使用Swift创建一个新的Tabbed应用程序 . 在FirstViewController.swift中,使用performSegueWithIdentifier导航到第二个视图控制器 . 在SecondViewController.swift中使用hidesBackButton隐藏导航栏后退按钮,您将看到问题所在 .

8 回答

  • 1

    尝试添加此:

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

    使用最新的Swift隐藏后退按钮:

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

    您可以使用以下代码隐藏 UINavigationBar 上的后退按钮 .

    Swift 3 ;

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

    这对我有用

    navigationController?.navigationBar.topItem?.hidesBackButton = true
    
  • 16
    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
    }
    
  • 6

    尝试添加这个,这对我有用

    navigationItem.hidesBackButton = true
    
  • 47

    这对我有用:

    override func viewWillAppear(animated: Bool)
    {
        super.viewWillAppear(animated)
    
        self.tabBarController?.navigationItem.hidesBackButton = true
    }
    
  • 8

    我在init()中设置它而不是viewDidLoad时为我工作 . 虽然很奇怪

相关问题