1

愚蠢的事情,如果满足 for 循环中的某个条件,我正在尝试更改 UIBarButtonItem 上的标题。但是我遇到了麻烦。

我试过了

self.barButtonItem.title=@"NewTitle"

[self.barButtonItem setTitle:@"New Title"];

之后我什至在视图上做了一个 setNeedsDisplay ,但没有任何运气。顺便说一句,是的,我从 self.navigationBar.items 中获取旧的按钮数组,删除旧按钮并设置新按钮。

如果我改变屏幕方向(翻转 ipad),按钮标题会改变。但除此之外,它保持不变。

我错过了什么吗?

4

2 回答 2

1

问题

如果您浏览文档,苹果会说:

“您应该在将项目添加到栏之前设置此属性。”

是因为,

cancel_btn.title = "something"  // It does not work !

因为您已经将项目设置为栏。

解决方案

//
let theTitle = "something"

//
self.navigationItem.leftBarButtonItem = UIBarButtonItem(title: theTitle, style: 
UIBarButtonItemStyle.plain, target: self, action: 
#selector(cancelAction))

现在你在将项目添加到栏之前设置标题。

于 2018-09-16T16:03:32.363 回答
0

我为此利用了 的possibleTitles属性UIBarButtonItem

创建按钮时试试这个:

self.barButtonItem = [[UIBarButtonItem alloc] init...];
self.barButtonItem.possibleTitles = [NSSet setWithObjects:@"Title 1", @"Title 2", nil];

然后,要更改标题,请执行以下操作:

self.barButtonItem.title = @"Title X"; // must be one of the possibleTitles
于 2012-12-03T01:33:43.820 回答