【发布时间】:2021-03-23 03:56:43
【问题描述】:
嗨, 我在 Xcode 上为 IOS 编写一个应用程序,我想将一个变量发送到另一个 ViewController。问题是,当我想从名为 "Step1" 的控制器发送数据以设置名为 "Step2" 的第二个视图控制器的标签时。为此,我在 “步骤 1” 中以这种方式进行:
guard let step2 = self.storyboard?.instantiateViewController(withIdentifier: Step2) as? EndConfiguration else
{
fatalError("Error when trying to get the reference to the Step 2")
}
step2.nameLabelOutlet?.text = "Jonh"
但是我的标签没有设置...有人可以帮我解决这个问题吗?
提前谢谢你。
【问题讨论】:
-
应该是
instantiateViewController(withIdentifier: "EndConfiguration") -
抱歉,我修改了代码以使您更容易理解。
-
什么不起作用?
-
iBOutlets 在视图加载之前不会设置。在呈现视图控制器或引用
view或调用loadViewIfNeeded之前,不会加载视图。但是,从拥有的视图控制器外部直接引用 UI 元素是一种糟糕的形式。我建议您将文本分配给目标视图控制器中的新字符串属性,然后将该字符串分配给您的标签,例如viewDidLoad' orviewWillAppear` -
@Paulw11 很好地抓住了试图从新实例化的视图控制器访问 IBOutlet 的代码。我错过了那部分。
标签: ios swift iphone xcode ipad