【问题标题】:Pass same data from one VC to another VC to another VC将相同的数据从一个 VC 传递到另一个 VC 到另一个 VC
【发布时间】:2020-03-15 15:24:31
【问题描述】:

我有一个名为 name 的变量,它带有字符串“Magellan”,需要添加到每个 VC 的 nameLabel 中。

在第一个 VC 中:

var name = "Magellan"

第一个 VC 为 segue 做准备:

destination?.nameLabel.text = name!
destination?.name = name!

在第二个VC中:

var name = String()

第二个VC准备继续:

destination?.nameLabel.text = name!
destination?.name = name!

在第二个VC去第三个VC:

Error: Unexpectedly found nil unwrapping nameLabel.text
Error: Unexpectedly found nil unwrapping name

【问题讨论】:

  • 错误提示 nameLabel 和 name 变量在目标 VC 中为零,这意味着发生此分配时,您的第三个 VC 未使用所有属性进行初始化。我相信它会解决问题
  • 那我该怎么办?
  • 我说你的第三个VC没有初始化,检查它为什么没有初始化
  • 啊,是的,这是有缺陷的,因为在第三个 VC 中没有包含任何名称的变量。我在第三个变量中添加了一个变量,它工作得很好。谢谢s\

标签: swift optional uistoryboardsegue forced-unwrapping


【解决方案1】:

你必须改变你的

var name = String()

到

var name : String = “”

不同之处在于,当您使用 var name = String() 时,您将 String class 分配给您的变量名,而对于 var name : String = “” 您正在将 空值 分配给您的字符串类型变量名。

猜你喜欢
  • 2020-09-18
  • 2017-12-10
  • 1970-01-01
  • 1970-01-01
  • 2020-10-02
  • 1970-01-01
  • 2021-10-29
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多