单击按钮时如何更改UIBarButtonItem的标题 - iPhone



我正在尝试在单击按钮时更改UIBarButtonItem的标题。 这是我的代码...但它不起作用。

UIBarButtonItem * btnleft1 = [[UIBarButtonItem alloc] initWithTitle:@"Test2" 
                                                      style:UIBarButtonItemStyleDone 
                                                      target:self
                                                      action:@selector(TestingThis:)];
self.navigationItem.rightBarButtonItems = [NSArray arrayWithObjects:btn, btnleft, btnleft1, nil];
- (void)TestingThis:(id)sender {
    if (self.navigationItem.rightBarButtonItem.title == @"Test2") {
        self.navigationItem.rightBarButtonItem.title = @"Done";
    }
    else
    {
        self.navigationItem.rightBarButtonItem.title = @"Test2";
    }
}

这就是我正在使用的代码。 请记住,按钮"btnleft1"位于右栏按钮项"S"中,而不是在右栏按钮项中。 如果我将其更改为右栏按钮项目.标题...它给了我一个错误。

回答较晚,但为了将来参考,您可以使用自定义按钮执行此操作:

      CGRect frame = CGRectMake(10, 6, 60, 30);
      UIButton *customButton = [[UIButton alloc] initWithFrame:frame];
      [customButton setTitle:@"Done" forState:UIControlStateNormal];
      [customButton setTitle:@"Undone" forState:UIControlStateSelected];
      [customButton addTarget:self action:@selector(selectDoneClicked:) forControlEvents:UIControlEventTouchUpInside];
      UIBarButtonItem *leftButton = [[UIBarButtonItem alloc] initWithCustomView:customButton ];
      [self.navigationItem setLeftBarButtonItem:leftButton];

尝试显式设置标题。您可以使用代码执行此操作:[(UIBarButtonItem *)item setTitle:@"someText"];
下面是一个有用的链接:以编程方式更改
工具栏上 UILabel (UIBarButtonItem) 的文本希望这有帮助!

最新更新