2016-08-31 114 views
2

我的屏幕流是遵循如何隐藏栏按钮项目

登录 - >注册 - > CarDetails

以上屏幕的所有3个在导航控制器,但不允许用户从车回去 - 注册的详细信息。为了实现它,我已经在CarDetails视图控制器中使用了

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

。所以它隐藏了后退按钮,如果控制器在导航控制器中,后退按钮会自动创建。

到目前为止它是好的。

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

问题是它也在注册视图后显示。我需要在Car-Details视图中有条件的显示/隐藏功能。

我已经钩它为好,如以下

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

+0

的可能的复制【如何隐藏某些用户一栏按钮项( http://stackoverflow.com/questions/27887218/how-to-hide-a-bar-button-item-for-rtain-users) –

+0

什么是d玩过的? “_问题是它也在注册视图后显示。” –

回答

3

可以将其隐藏这样的:

self.navigationItem.leftBarButtonItem = nil 

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

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

我希望帮助,

欢呼声

+0

在这种情况下,我需要删除并添加栏按钮。我知道我可以实现这一目标。但我正在寻找更好的东西。谢谢你的方式。 –

+0

试试我的答案为rightBarButtonItem,看看它是否与leftBarButtonItem一起工作:http://stackoverflow.com/questions/3042818/hide-the-rightbarbuttonitem-of-a-navigation-controller/22617176#22617176 –

+0

Abu Eesa Something better means ? – user3182143

4

你可以将其隐藏通过禁用按钮&更改tintColor这样,

self.naivgationItem.rightBarButtonItem.enabled = false 
self.navigationItem.rightBarButtonItem.tintColor = UIColor.clearColor() 

做向左或向右BarButtonItem无论你首选。希望能帮助到你。

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

这不提供问题的答案。要批评或要求作者澄清,请在其帖子下方留言。 - [来自评论](/评论/低质量帖/ 13534705) – Sandy

+0

我检查了我的答案,我测试了这个问题,所以我发布anwer ....你为什么认为我的anser不提供这个问题? – Giang

+0

问题是关于隐藏元素的地方,你的答案不会隐藏它只是使禁用。合理? – Sandy

1

Swift 3.1 |伟大工程,以隐藏自己的rightBarButton

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

前:

enter image description here

后:

enter image description here