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

Ios 如何将变量从NSNumberFormatter传输到另一个ViewController?,ios,swift,variables,segue,number-formatting,Ios,Swift,Variables,Segue,Number Formatting,我有一个带有NSNumberFormatter的func: @objc func doneClicked() { view.endEditing(true) let formatter = NumberFormatter() formatter.locale = Locale.current formatter.numberStyle = .decimal

我有一个带有
NSNumberFormatter
的func:

@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))

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

为分段做
准备
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
中加载


有人知道解决方法吗?

您只需传递格式化文本即可:

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

        mounthController.mounth = mounthLabel.text
   }

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

如果要传输格式化的数字,为什么不传输格式化的数字(字符串)我将变量类型改为字符串并修改了格式化程序方法,但现在我的应用程序崩溃了…由于未捕获的异常“NSDecimalNumberOverflowException”而终止应用程序,原因是:“NSDecimalNumberOverflowException”