如何更改NavigationBar上的BarButtonItem的文本?
我正在尝试创build一个可以编辑的项目列表。 像这样的东西:
为此,我在视图的顶部添加了一个NavigationBar,然后在XCodedevise器中添加了2个Bar Button Items。 我将左侧button的标识设置为“添加”,右侧的“编辑”button。
当我点击编辑时,我想将文本更改为完成。 我已经尝试了各种方法,例如btnEdit.Title = "Done"
,但它根本不需要。
我见过几篇博客post,推荐.SetTitle,但UIButtonBarItem没有这个方法(至less在MonoTouch中)。
那么,我怎样才能改变编辑button的标题呢?
我解决了它。 关键是我将编辑button的标识符设置为系统值(例如UIBarButtonSystemItemEdit),您不能更改这些(现在有意义)的文本。 我改变了标识符回到自定义和设置。标题工作正常。
你为什么不尝试改变navigationItem.rightbarButtonItem
属性?
1.设置两个button,一个用于编辑,另一个用于完成
UIBarButtonItem*editButton=[[UIBarButtonItem alloc] initWithTitle:@"Edit" style:UIBarButtonItemStylePlain target:self action:@selector(editAction)]; UIBarButtonItem*doneButton=[[UIBarButtonItem alloc] initWithTitle:@"Done" style:UIBarButtonItemStylePlain target:self action:@selector(doneAction)];
2.在必要的情况下,在editAction
最好更改rightBarButtonItem
如:
self.navigationItem.rightBarButtonItem=doneButton;
如果你需要editButton
self.navigationItem.rightBarButtonItem=editButton;
if ([self.navigationItem.rightBarButtonItem.title isEqualToString:@"Edit"]) { self.navigationItem.rightBarButtonItem.title= @"Done"; }
希望这可以帮助。 快乐编码:)
适用于我这样的UIBarButtonItem * btnEdit ; 在.h是class级记忆;
btnEdit = [[UIBarButtonItem alloc]initWithTitle:@"Edit" style:UIBarButtonItemStyleBordered target:self action:@selector(btnEditClicked)]; self.navigationItem.leftBarButtonItem = btnEdit; //[btnEdit release];
现在select器调用将是:
-(void)btnEditClicked { if([btnEdit.title isEqualToString:@"Edit"]) { [btnEdit setTitle:@"Done"]; } else { [btnEdit setTitle:@"Edit"]; } }
控制从栏button拖动到文件(使用助理编辑器),创build出口(在这种情况下,其称为“barButton”。然后,添加此:
Swift 3.0:
self.barButton.title = "New title"
重新新buildbutton,如下所示。 。
self.navigationItem.leftBarButtonItem = UIBarButtonItem(title: "title", style: UIBarButtonItemStyle.plain, target: self, action: #selector(actionMethod))