不可能更改UIBarButtonItem标题?

时间:2012-12-03 01:16:36

标签: ios xcode ipad title uibarbuttonitem

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

我试过

self.barButtonItem.title=@"NewTitle"

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

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

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

我错过了什么吗?

2 个答案:

答案 0 :(得分: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))

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

答案 1 :(得分:0)

我为此使用了possibleTitles的{​​{1}}属性。

创建按钮时尝试此操作:

UIBarButtonItem

然后,要更改标题,请执行:

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