愚蠢的事情,我试图改变UIBarButtonItem上的标题,如果满足for循环中的某个条件。但是我遇到了麻烦。
我试过了
self.barButtonItem.title=@"NewTitle"
和
[self.barButtonItem setTitle:@"New Title"];
我甚至在视图上做了一个setNeedsDisplay,没有任何运气。顺便说一句,是的,我从self.navigationBar.items获取旧的按钮数组,删除旧按钮,并设置新按钮。
如果我改变屏幕方向(翻转ipad),按钮标题确实会改变。但除此之外,它保持不变。
我错过了什么吗?
问题
如果你浏览文档,苹果说:
“在将项目添加到栏之前,您应该设置此属性。”
是因为,
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))
现在你在将项目添加到栏之前设置标题。
我为此使用了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