当前位置: 首页 > 知识库问答 >
问题:

在2个ViewControllers之间传递数据[重复]

澹台欣怿
2023-03-14

我正试图将数据从第一个ViewController发送到第二个ViewController。

var time: Double? = 0.00

然后我尝试将它发送到我的另一个ViewController:

let vc = segue.destination as! MySecondViewController
   vc.rows = rows[pathForAVC]
   vc.lap = lap[pathForAVC]
   vc.indexPath = pathForAVC
   vc.time = rows[pathForAVC]["Time"]! as! Double

致命错误:在展开可选值时意外发现nil

我的第二个视图控制器:

var time: Double? = 0.00
topLabel.text = "\(time!)"
var rows: [[String : AnyObject]] = [[:]]

共有1个答案

骆文彬
2023-03-14

问题是,您正在强制展开一个可能不存在的值:

vc.time = rows[pathForAVC]["Time"]! as! Double

如果行[pathForAVC][“time”]!为nil,则应用程序将崩溃。您确实应该避免使用,除非您的应用程序没有该值就无法继续运行。而那些情况应该很少见。

相反,您应该使用if let语句安全地展开值,如下所示:

if let unwrappedTime = rows[pathForAVC]["Time"] as? Double {
    print(unwrappedTime)
}

(我现在还不熟悉Xcode,但上面的代码应该足够接近,可以从编译器获得有价值的提示)。

如果你需要更多的澄清,请告诉我。

 类似资料:
  • 我想把我的数据传递给其他的viewcontroller,但我做不到。我的密码在下面。ViewControllers的屏幕截图在这里。当用户写出他们的名字和密码时,我想传递另一个用户的数据,但他们之间还有一个viewcontroller。我认为这是一个问题,但我可以移除这个额外的视图控制器,所以我想了解如何才能把这些数据传递给其他的一个? 第一个viewcontroller的代码 第二个viewco

  • 我的应用程序包含5个ViewControllers的TabBar控制器可以单击每个viewcontrollers中的一个按钮,该按钮将弹出另一个视图,用户可以在其中选择一个设置。按钮(被点击)应该根据每个ViewController中选择的设置来改变其背景。因此,如果用户点击VC1中的按钮并选择设置,该信息应该传播到所有其他VC中,以便按钮具有相同的背景。 我正在使用故事板,我知道这很容易在2VC

  • 我有两个viewController,分别命名为viewController和我想获取数据并使用委托将其发送到secondViewController。另外,我在secondViewController中有一个数组,当每个数据来自VC1时,它必须存储数据,如; segue1,第一个数据来了->arrayElements{firstData}segue2,第二个数据来了->arrayElements

  • 可以在多个类之间传递数据吗? 我试图实现的是“一个类设置某个类的值,另一个类访问它”(java初学者)

  • 问题内容: 我有两个 -我有和同赛格瑞“模式” -我有与(回FirstVC): 我创建的委托为: 下一个: 我的函数,在此函数中,我的委托用作: FirstVC: 请帮助我解决这个问题。 问题答案: 1)您需要将委托设置为prepareForSegue: 更新: 2)设为可选

  • 我对如何在两个模型之间传递数据有疑问。 所以我想把状态从单元传递到主模型,并在那里进行反应。例如发送请求。