在导航栏中更改标签文本

时间:2017-10-02 10:51:58

标签: ios swift uilabel uinavigationbar

我使用以下代码为我的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中标签的文本。

2 个答案:

答案 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"