如何隐藏栏按钮项

时间:2016-08-31 23:23:20

标签: ios objective-c swift

我的屏幕流程如下

登录 - >注册 - > CarDetails

以上所有3个屏幕都在导航控制器中,但不允许用户从Car-Details返回到注册。为实现这一目标,我已经

override func viewWillAppear(animated: Bool)
    {
        self.navigationItem.setHidesBackButton(true, animated:true);
    } 

在CarDetails视图控制器中。所以它隐藏了后退按钮,如果控制器在导航控制器中,它会自动生成。

到目前为止一切都很好。

在主屏幕上提供所有详细用户登陆后,我将滑出菜单。从菜单用户也可以转到CarDetail屏幕(更新)。那个时候而不是backButton我需要滑出菜单按钮作为左栏按钮。所以我用故事板创建了它。

问题是它也会在注册视图后显示出来。我需要在Car-Details View中为它设置条件显示/隐藏功能。

我也是这样做的,如下所示

override func viewDidLoad()
{
    super.viewDidLoad()


    if menuButtonVisibility
    {

        if self.revealViewController() != nil
        {
            menuButton.target = self.revealViewController()
            menuButton.action = "revealToggle:"
            self.view.addGestureRecognizer(self.revealViewController().panGestureRecognizer())
        }
    }

    else
    {

    }

    menuButtonVisibility=true
}

我只需要将行放入else块。

enter image description here

5 个答案:

答案 0 :(得分:11)

您可以通过禁用按钮&像那样改变它tintColor,

self.navigationItem.rightBarButtonItem?.isEnabled = false
self.navigationItem.rightBarButtonItem?.tintColor = UIColor.clear

向右或向左执行BarButtonItem。希望能帮助到你。

答案 1 :(得分:4)

你可以像这样隐藏它:

self.navigationItem.leftBarButtonItem = nil

你可以像这样添加一个新的左键:

self.navigationItem.leftBarButtonItem = UIBarButtonItem(title: "Button", style: .Plain, target: self, action: #selector(ViewController.buttonTapped))

我希望有所帮助,

干杯

答案 2 :(得分:3)

Swift 3.1 |非常适合隐藏我的rightBarButton

  // viewDidLoad 
  self.rightBarButtonAlert.isEnabled = false
  self.rightBarButtonAlert.tintColor = .clear

在:

enter image description here

后:

enter image description here

答案 3 :(得分:1)

  for (UIBarButtonItem *item in self.navigationItem.rightBarButtonItems) {
        item.width = -50;
        item.enabled = false;
    }

答案 4 :(得分:0)

要快速隐藏barButtonItem

barbuttonItem1.isEnabled =否 barbuttonItem1.tintColor = UIColor.clear