愚蠢的是,如果满足for循环中的某个条件,我试图在UIBarButtonItem上更改标题。但是我遇到了麻烦。
我试过
self.barButtonItem.title=@"NewTitle"
和
[self.barButtonItem setTitle:@"New Title"];
我甚至在视图上做了一个setNeedsDisplay而没有任何运气。顺便说一句,是的,我从self.navigationBar.items获取旧的按钮数组,删除旧按钮,并设置新按钮。
如果我更改屏幕方向(翻转ipad),按钮标题会改变。但除此之外,它保持不变。
我错过了什么吗?
答案 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];