iOS-7中如何在需要时隐藏或显示左侧导航栏按钮

8
我使用故事板添加了左侧导航栏按钮,但我希望在首次加载屏幕时隐藏它。然后,在响应其他内容时,我希望它显示出来。导航栏有一个隐藏返回按钮的方法。但没有隐藏/显示左侧按钮的方法。是否有一种简单的方法来完成这个任务?还是我必须使用两种方法:隐藏方法创建一个空按钮,显示方法创建正确的按钮?所讨论的按钮只是iOS提供的添加模板(使用故事板中的按钮比创建自己的按钮更容易)。
3个回答

30

这是我如何解决它的方法

-(void) hideAndDisableRightNavigationItem
{
    [self.navigationItem.rightBarButtonItem setTintColor:[UIColor clearColor]];
    [self.navigationItem.rightBarButtonItem setEnabled:NO];
}

-(void) showAndEnableRightNavigationItem
{
    [self.navigationItem.rightBarButtonItem setTintColor:[UIColor blackColor]];
    [self.navigationItem.rightBarButtonItem setEnabled:YES];
}

1
那很性感。堆栈上最佳解决方案。 - App Dev Guy
我在类似的问题中引用了这个。希望你不介意。 https://dev59.com/lW035IYBdhLWcg3wKsqa#27262875 - App Dev Guy
如果我有多个导航栏按钮,左边或右边都可以,怎么办? - Mathi Arasan

8

@learner的答案的Swift版本

func hideAndDisableRightNavigationItem (){
  self.navigationItem.rightBarButtonItem?.enabled = false
  self.navigationItem.rightBarButtonItem?.tintColor = UIColor.clearColor()
}

func showAndEnableRightNavigationItem(){
   self.navigationItem.rightBarButtonItem?.enabled = true
   self.navigationItem.rightBarButtonItem?.tintColor = UIColor. blackColor()
}

-2

这是我所做的。在初始屏幕上,我想隐藏导航栏:

 self.navigationController.navigationBarHidden = YES;

在第二个屏幕上,我想要显示导航栏,所以我设置了:
 self.navigationController.navigationBarHidden = NO;

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接