ios隐藏左侧导航按钮的文本

时间:2015-04-15 06:37:21

标签: ios uinavigationcontroller uinavigationitem

我只需要显示箭头按钮并隐藏左侧导航按钮的文字。根据这个link,我可以这样做。但如果我喜欢这样,滑动返回功能将被破坏。

self.navigationItem.backBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"" style:UIBarButtonItemStylePlain target:nil action:nil];

所以,我用这个来隐藏文字。

self.navigationController.navigationBar.topItem.title = @"";

到目前为止,没关系。但是,如果我之前的视图的searchDisplayController处于活动状态并且推送到新视图,则会显示左侧导航按钮文本。我可以知道该怎么做吗?

3 个答案:

答案 0 :(得分:5)

在每个视图控制器中复制并粘贴此行:

self.navigationController.navigationItem.leftBarButtonItem.title = " "

或者您可以使用以下步骤在storyboard / xib文件中实现此目的: -

  1. 导航项从对象库拖放到ViewController上。然后选择ViewController。
  2. 在左侧菜单中选择导航项(带有后退箭头和标题的那个作为文本:“< Title”)。
  3. 选择右侧的属性检查器,并用空格替换文字:标题
  4. 对所有视图控制器重复这些步骤。 希望它有所帮助。

答案 1 :(得分:2)

您需要为您的要求添加custom button的一个解决方案,如下所示:

//create image instance add here back image
UIImage *imgBack = [UIImage imageNamed:@"image name here"];

//create UIButton instance for UIBarButtonItem
UIButton *btnBack = [UIButton buttonWithType:UIButtonTypeCustom];
[btnBack setImage:imgBack forState:UIControlStateNormal];
btnBack.frame = CGRectMake(0, 0, imgBack.size.width,imgBack.size.height);
[btnBack addTarget:self action:@selector(btnBackAction:) forControlEvents:UIControlEventTouchUpInside];

//create UIBarButtonItem instance
UIBarButtonItem *barBtnBackItem = [[UIBarButtonItem alloc] initWithCustomView:btnBack];
//set in UINavigationItem
self.navigationItem.leftBarButtonItem = barBtnBackItem;

按钮方法如下:

-(void)btnBackAction:(id)sender
{
   [self.navigationController popViewControllerAnimated:YES];
}

编辑:对于slide swipe添加viewDidLoad方法

//for enabling swipe gesture
if ([self.navigationController respondsToSelector:@selector(interactivePopGestureRecognizer)]) {
    self.navigationController.interactivePopGestureRecognizer.enabled = YES;
}

答案 2 :(得分:2)

@ Atif&#39> 答案是正确的。我只是想补充一点,而不是复制和粘贴所有文件中的代码,创建一个自定义 UINavigationController 并实现 @Atif 所提到的所需代码。(I由于评级较低而无法发表评论。)