以编程方式更改UIBarButtonItem的标识符属性

5

通过接口生成器,我可以将UIBarButtonItem的标识符更改为类似于“添加”(或“撤消”,“重做”等...)。这样我的按钮就会有一个漂亮的“+”图像。

我如何通过编程设置它?UIBarButtonItem不接受“setIdentifier”消息。

3个回答

6

在构建后,UIBarButtonItem的“Identifier”无法修改。但是,可以通过使用编程方式构建的变体替换按钮来更改UI。例如:

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

10
这篇文章的标题有误导性。它并没有改变UIBarButtonItem的标识符,而只是创建了一个新的UIBarButtonItem,并初始化了标识符属性。我正在寻找一种方法来修改现有按钮上的标识符。更好的标题应该是“以编程方式设置新创建的UIBarButtonItem的标识符属性”或类似的内容。 - Senseful
2
很抱歉您遇到了我的解决方案,但它并没有完全满足您的期望。在提出问题时,我正在寻找一种实际上可以改变它的方法。这个解决方案对我有效 - 如果对您无效,那么我很抱歉。 - rein

2
如果您想要一个带边框且标识为相机的按钮样式,请使用以下代码:
UIBarButtonItem *btn;
btn = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemCamera target:self action:@selector(shotAction:)];
btn.style=UIBarButtonItemStyleBordered;

0

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

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

self.navigationItem.rightBarButtonItem = barButton;

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接