【问题标题】:iOS how to remove back button?iOS如何删除后退按钮?
【发布时间】:2012-02-29 12:46:27
【问题描述】:

我有一个带有导航栏的应用程序,它推送到登录屏幕视图控制器,然后推送到主菜单。有什么办法可以从主菜单中删除后退按钮,因此用户无法返回登录屏幕?

谢谢!

编辑:使用 Xcode 4.3 并以编程方式完成所有工作。

【问题讨论】:

    标签: ios navigationcontroller


    【解决方案1】:

    你可以这样做:

    [self.navigationItem setHidesBackButton:YES];
    

    在您的第二个视图控制器(您想要隐藏按钮的那个)中。

    【讨论】:

    • 可能需要重新考虑使用导航堆栈,而是呈现一个模态 VC - 见下文。
    • 为了将来参考,如果它不适合您,只需将该代码放入 viewDidAppear: 即可开始工作。
    • 你救了我的命。非常感谢。
    • self.navigationItem.hidesBackButton = true for Swift 4+
    【解决方案2】:

    彼得斯的回答是正确的,虽然我认为更好的问题是为什么?在您想要登录用户的模式中,而不是使用推送 VC,呈现一个模态 VC 并使用委托方法来取回在登录过程中获得的用户信息。如果您需要,我可以发布一个完整的代码示例,但听起来您已经通过登录过程制定了详细信息。只需使用:

    presentModalViewController
    

    代替:

    pushViewController
    

    这样,您就不必担心导航堆栈,也不必做与用户界面指南不相符的事情。

    【讨论】:

      【解决方案3】:

      迅速

      self.navigationItem.hidesBackButton = true
      

      【讨论】:

      • 可以,但是向后滑动的手势会丢失!
      【解决方案4】:

      上面的代码对我不起作用。正如UINavigationItem setHidesBackButton:YES won't prevent from going back 中所建议的, 我不得不使用:

      [self.navigationItem setLeftBarButtonItem:[[UIBarButtonItem alloc] initWithCustomView:[[UIView alloc] init]]];
      

      【讨论】:

        【解决方案5】:

        试试这个:

        [self.navigationItem setHidesBackButton:YES];
        

        或者

        [self.navigationItem setHidesBackButton:YES animated:YES];
        

        【讨论】:

          【解决方案6】:

          在 Xcode7.3.1 中试过,很快

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

          它只隐藏了后退箭头并禁用了后退操作,但我仍然可以看到前一个视图控制器的名称。

          如果还想隐藏前一个视图控制器的名称,请尝试Yoga's answer 对我有用。很快

          self.navigationItem.leftBarButtonItem = UIBarButtonItem(customView: UIView())
          

          【讨论】:

            【解决方案7】:

            如果您需要切换显示/隐藏后退按钮:

            navigationItem.hidesBackButton = true/false
            

            并保持向后滑动手势:

            extension YourViewController: UIGestureRecognizerDelegate {}
            

            navigationController?.interactivePopGestureRecognizer?.isEnabled = true
            navigationController?.interactivePopGestureRecognizer?.delegate = self
            

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 2014-05-30
              • 1970-01-01
              • 1970-01-01
              • 2020-08-28
              • 1970-01-01
              • 2016-05-26
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多