【问题标题】:Result on another View Controller [duplicate]另一个视图控制器上的结果[重复]
【发布时间】:2018-05-11 09:44:31
【问题描述】:

我在Main.Storyboard 上有一个ViewController.swift 文件和两个视图控制器。当然有一个导航控制器。两个视图控制器都有一个类:ViewController

看起来都是something like this

我在TextField 中输入值,按回车,有数学计算,我在Label 上看到结果。但是,只有当TextFieldLabel 在同一个视图控制器上时,我才能在Label 中看到结果。

如何在点击下一步后在第二个 View Controller 上的 Label 中看到结果?

【问题讨论】:

标签: ios swift xcode


【解决方案1】:

您需要将这些值传递给second ViewController。

为此,在您的first ViewController 中,您需要覆盖方法override func prepare(for segue: UIStoryboardSegue, sender: Any?) 并确定您将要继续使用second ViewController 并设置值。

override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
    if let viewController = segue.destinationViewController as? SecondViewController {
        viewController.calculatedValue = self.calculatedValue
    }
}

second ViewController 加载时,它已经设置了这些。

【讨论】:

  • 谢谢。在新的 Swift 中,只有“destination”而不是“destinationViewController”。但无论如何,它没有工作。在 viewController 行中。计算值 = 计算值 表示 “ViewControllerB”类型的值没有成员“计算值”,即使我的 ViewControllerB 中有 var computedValue = String()
  • 你能粘贴你的代码吗
  • 这是 ViewControllerA @IBAction func pressButton(_ sender: Any) { self.resignFirstResponder() if segmentSwitch.selectedSegmentIndex == 0 { let temperature = Double(textField.text!) let lowTempNum = temperature! * 10 let highTempNum = temperature! * 30 lowTemp.text = String(format: "%4.0f", lowTempNum) highTemp.text = String(format: "%4.0f", highTempNum)
  • 当然我在ViewControllerB中使用var lowTempNum = String()var highTempNum = String()
【解决方案2】:

在 ViewController B 中创建一个 var 并将 ViewController A 的结果分配给 viewcontroller B 的变量。 像 在视图控制器 B 中: 变量结果 = "" 在 ViewDidLoad() 中

label.text = result

在 ViewController A 中 按下回车键时

let vc = ViewControllerB(nibName: "ViewControllerB", bundle: nil)
vc.result = //your calculated result
self.navigationController?.pushViewController(vc, animated: true)

【讨论】:

  • 谢谢。但还是赢不了。单击按钮后,我的应用程序立即崩溃。在“class AppDelegate: UIResponder, UIApplicationDelegate {” --- 线程 1: 信号 SIGABRT
猜你喜欢
  • 1970-01-01
  • 2015-01-17
  • 2016-05-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多