Панель навигации Xcode Swift на разных ViewControllers - PullRequest
0 голосов
/ 06 июня 2018

У меня есть метка, которая появляется на панели навигации при первом открытии представления FirstViewController.Метка показывает число, которое должно быть в состоянии изменить.Если я нажимаю кнопку на FirstViewController, то открывается вид SecondViewController, в навигационной панели которого метка 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 голосов
/ 06 июня 2018

Похоже, ваша проблема со вторым 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)"
}
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...