不同ViewControllers上的Xcode Swift导航栏

时间:2018-06-06 19:09:15

标签: swift xcode label navigationbar

第一次打开FirstViewController的视图时,我有一个出现在NavigationBar中的标签。标签显示应该能够更改的数字。如果我单击FirstViewController上的按钮,SecondViewController的View将显示在哪个NavigationBar中,FirstViewController的标签仍然可见。当我通过单击SecondViewController中的按钮更改标签中写入的数字时,标签的编号仅在我返回到FirstViewController的视图时才会更改。那是因为我更新了ViewDidLoad String循环中的标题。 现在我的问题是: 我希望在单击SecondViewController中的按钮时更改标签的编号,尽管标签是在FirstViewController的代码中定义的。标签的数量显示金额。

这是FirstViewController的代码:

var moneyLabel: UILabel?

override func viewDidLoad() {
    super.viewDidLoad()

    setupNavigationLabel()

    let newMoney:String = String(format: "%f", money)
    updateTitle(title: "\(newMoney)")
}

func updateTitle(title: String) {
    if let myTitleView = self.moneyLabel {
        myTitleView.text = title
    }
}    

func setupNavigationLabel() {
    let navigationBar = self.navigationController?.navigationBar

    let moneyFrame = CGRect(x: 300, y: 0, width:
        (navigationBar?.frame.width)!/2, height: (navigationBar?.frame.height)!)

    moneyLabel = UILabel(frame: moneyFrame)

    moneyLabel?.text = "\(money)"

    navigationBar?.addSubview(moneyLabel!)
}

1 个答案:

答案 0 :(得分:0)

您的问题似乎是第二个ViewController,但您没有共享任何代码!使用以下内容来实现您的目标。

class secondViewControler:UIViewController{
var money:Int
var moneyLabel:UILAbel?

override func viewDidLoad(){
self.money= //pass the amount, i dont know which way you use to store and retrieve the amount
moneyLabel.text="\(money)"

}

@IBAction updateMoney(){
//get the amount from the textfield say the output is X
money=X
moneyLabel.text="\(money)"
}
}