【问题标题】:How to change the text of a BarButtonItem on the NavigationBar?如何更改 NavigationBar 上 BarButtonItem 的文本?
【发布时间】:2012-09-04 05:54:52
【问题描述】:

我正在尝试创建一个可以编辑的项目列表。像这样的:

为此,我在视图顶部添加了一个 NavigationBar,然后在 XCode 设计器中添加了 2 个 Bar Button Items。我将左侧按钮的标识符设置为添加,右侧按钮的标识符设置为编辑。

当我单击编辑时,我想将文本更改为完成。我尝试了各种方法,例如btnEdit.Title = "Done",但它根本不需要。

我看过几篇推荐 .SetTitle 的博文,但 UIButtonBarItem 没有那个方法(至少在 MonoTouch 中)。

那么,如何更改“编辑”按钮的标题?

【问题讨论】:

    标签: ios xamarin.ios uinavigationbar uibuttonbaritem


    【解决方案1】:

    我解决了。关键是我将“编辑”按钮的标识符设置为系统值(例如 UIBarButtonSystemItemEdit),而您无法更改它们的文本(现在有意义)。我将标识符改回自定义并设置 .Title 工作正常。

    【讨论】:

    • 真的很有帮助。谢谢:)
    • 天哪,我被困在这个问题上很长时间了。谢谢!!
    【解决方案2】:

    您为什么不尝试更改navigationItem.rightbarButtonItem 属性?

    1.设置两个按钮,一个用于编辑,一个用于完成

     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;
    

    【讨论】:

    • 更改 rightBarButtonItem 后,由于某种原因,附加到两个按钮的操作都不起作用。
    【解决方案3】:
    if ([self.navigationItem.rightBarButtonItem.title isEqualToString:@"Edit"]) 
    {
        self.navigationItem.rightBarButtonItem.title= @"Done";
    }
    

    希望这会有所帮助。快乐编码:)

    【讨论】:

    • 您不能使用 == 来比较字符串。你应该使用 isEqualToString: 代替。
    • 如果有帮助请采纳答案,以指导其他有同样问题的人。谢谢。
    【解决方案4】:

    UIBarButtonItem *btnEdit 一样为我工作;是.h中的类memember;

    btnEdit = [[UIBarButtonItem alloc]initWithTitle:@"Edit" style:UIBarButtonItemStyleBordered target:self action:@selector(btnEditClicked)];
    self.navigationItem.leftBarButtonItem = btnEdit;
    //[btnEdit release];
    

    现在调用的选择器将是:

    -(void)btnEditClicked
    {
      if([btnEdit.title isEqualToString:@"Edit"])
      {
        [btnEdit setTitle:@"Done"];
      }
      else
      {
        [btnEdit setTitle:@"Edit"];
      }
    }
    

    【讨论】:

      【解决方案5】:

      控制从栏按钮拖动到文件(使用助手编辑器),创建出口(在这种情况下,它被称为“barButton”。然后,添加这个:

      斯威夫特 3.0:

      self.barButton.title = "New title"
      

      【讨论】:

        【解决方案6】:

        重新新建按钮,如下所示。 .

        self.navigationItem.leftBarButtonItem = UIBarButtonItem(title: "title", style: UIBarButtonItemStyle.plain, target: self, action: #selector(actionMethod))
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2017-08-20
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-09-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多