【问题标题】:Programmatically changing the identifier property of UIBarButtonItem以编程方式更改 UIBarButtonItem 的标识符属性
【发布时间】:2014-06-17 02:16:52
【问题描述】:

通过 Interface Builder,我可以将 UIBarButtonItem 的标识符更改为“添加”(或“撤消”、“重做”等)。这给我的按钮一个漂亮的“+”图像。

如何以编程方式进行设置? UIBarButtonItem 不接受“setIdentifier”消息。

【问题讨论】:

    标签: iphone cocoa-touch uibarbuttonitem


    【解决方案1】:

    一旦构造,UIBarButtonItem 的“标识符”就不能被修改。但是,可以通过将按钮替换为以编程方式构造的变体来更改 UI。例如:

    UIBarButtonItem *addButton = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemAdd 
                                                                               target:self 
                                                                               action:@selector(doAddAction:)];
    

    【讨论】:

    • 您对这篇文章的标题具有误导性。这不会更改 UIBarButtonItem 的标识符,它只是创建一个初始化了标识符属性的新标识符。我正在寻找一种方法来修改现有按钮上的标识符。更好的标题是“以编程方式设置新创建的 UIBarButtonItem 的标识符属性”或类似的内容。
    • 很抱歉您偶然发现了我的解决方案,但它并没有完全满足您的期望。在提出这个问题时,我正在寻找一种方法来改变它。该解决方案对我有用 - 如果它不适合你,我很抱歉。
    【解决方案2】:

    如果你想要一个按钮样式:边框和标识符:相机使用

    UIBarButtonItem *btn;
    btn = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemCamera target:self action:@selector(shotAction:)];
    btn.style=UIBarButtonItemStyleBordered;
    

    【讨论】:

      【解决方案3】:

      一旦创建了 UIBarButtonItem,就无法更改标识符。但是,您可以创建一个新的 UIBarButtonItem 来替换旧的 UIBarButtonItem

      UIBarButtonItem *barButton = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemAction
                                                                    target:self
                                                                    action:@selector(buttonClickedAction:)];
      
      self.navigationItem.rightBarButtonItem = barButton;
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-12-30
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-11-07
        • 2017-02-27
        • 2021-09-03
        • 2016-05-22
        相关资源
        最近更新 更多