我使用以下代码为我的NavigationBar添加了一个标签:
let navigationBar = self.navigationController?.navigationBar
let moneyFrame = CGRect(x: 330, y: 0, width: (navigationBar?.frame.width)!/2, height: (navigationBar?.frame.height)!)
let moneyLabel = UILabel(frame: moneyFrame)
moneyLabel.text = "\(money)"
navigationBar?.addSubview(moneyLabel)
问题是:当我想改变变量" money"的价值时,我总是带着添加另一个标签的解决方案。我只想更改NavigationBar中标签的文本。
答案 0 :(得分:1)
在类范围内定义一个这样的标签:
var moneyLabel: UILabel?
然后在您的函数中或您发布的代码位于类中的任何位置,执行以下操作:
func myFunctionThatSetupNavigationLabel() {
let navigationBar = self.navigationController?.navigationBar
let moneyFrame = CGRect(x: 330, y: 0, width:
(navigationBar?.frame.width)!/2, height: (navigationBar?.frame.height)!)
moneyLabel = UILabel(frame: moneyFrame)
moneyLabel.text = "\(money)"
navigationBar?.addSubview(moneyLabel)
}
现在只需添加此功能即可编辑标题标签:
func updateTitle(title: String) {
if let myTitleView = self.moneyLabel {
myTitleView.text = title
}
}
答案 1 :(得分:1)
您可以将标签作为自定义视图添加到导航栏中。
在类范围内定义标签:
var label = UILabel()
然后在viewDidLoad中:
override func viewDidLoad() {
super.viewDidLoad()
let textlabel = UIBarButtonItem(customView: label)
navigationItem.rightBarButtonItem = textlabel
label.text = "money"
}
然后,只要您想更改文本标签,只需编写下一个代码:
label.text = "whatever you want"