如何将变量从 NSNumberFormatter 转移到另一个 ViewController?
How to transfer variable from NSNumberFormatter to another ViewController?
我有一个函数 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))
}
}
我需要在另一个 ViewController
中处理到 Label
的数据传输。
制作 prepare forSegue
func
:
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if segue.identifier == "yearmounth" {
let mounthController = segue.destination as! MounthsViewController
mounthController.mounth = mounthresult
}
在这种情况下传输的变量没有格式化。并且显示没有本地化。
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
}
或者将数字存储在变量中并以类似方式传递。
我有一个函数 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))
}
}
我需要在另一个 ViewController
中处理到 Label
的数据传输。
制作 prepare forSegue
func
:
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if segue.identifier == "yearmounth" {
let mounthController = segue.destination as! MounthsViewController
mounthController.mounth = mounthresult
}
在这种情况下传输的变量没有格式化。并且显示没有本地化。
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
}
或者将数字存储在变量中并以类似方式传递。