如何将变量从NSNumberFormatter传递到另一个ViewController?

时间:2018-01-26 11:35:29

标签: ios swift variables segue number-formatting

我有一个NSNumberFormatter的函数:

@objc func doneClicked() {
                view.endEditing(true)


                let formatter = NumberFormatter()
                formatter.locale = Locale.current
                formatter.numberStyle = .decimal
                formatter.minimumSignificantDigits = 6

                if let text = textField.text, let number = formatter.number(from: text) {

                    year = number.doubleValue

                    mounthresult = year * 12

                    mounthLabel.text = formatter.string(from: NSDecimalNumber(value: year).multiplying(by: 12))

                }
    }

我需要将数据传输处理到另一个Label中的ViewController

制作prepare forSegue func

override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
        if segue.identifier == "yearmounth" {
        let mounthController = segue.destination as! MounthsViewController

        mounthController.mounth = mounthresult
}

在这种情况下,传输的var没有格式化。没有本地化的节目。

mounthresult = formatter.number(from: mounthLabel.text!) as! Double

这个案例也没有给出任何内容......它已被转移,但没有格式化。

我还尝试将NumberFormatter插入另一个控制器的ViewDidLoad。但在这种情况下NumberFormatter

中未加载ViewDidLoad

有谁知道解决方法?

1 个答案:

答案 0 :(得分:1)

您只需传递带格式的文字:

   override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
        if segue.identifier == "yearmounth" {
        let mounthController = segue.destination as! MounthsViewController

        mounthController.mounth = mounthLabel.text
   }

或者将数字存储在变量中并以类似方式传递。