gpt4 book ai didi

ios - 从 Swift 2 中的父 Controller 访问容器 View Controller

转载 作者:行者123 更新时间:2023-11-29 00:52:14 27 4
gpt4 key购买 nike

我想从父 View Controller 访问容器 View Controller 的标签。我尝试过以下方法:

prepareForSegue 是父 View Controller 中的一个函数。ViewController2 是容器 View Controller 。parin2 是容器 View Controller 中标签的名称。

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject!)
{
let vc1 = segue.destinationViewController as! ViewController2;
vc1.parin2.text=String("helo");
}

这会产生以下错误:

fatal error: unexpectedly found nil while unwrapping an Optional value

最佳答案

您没有确切地说哪一行导致了错误,但我的猜测是let vc1 = segue.destinationViewController as! ViewController2 (顺便说一句,请在 Swift 中省略 ';')。 as! 似乎失败了,因为目标 View Controller 不是 ViewController2。要验证这一点,请在该行设置一个断点,然后检查 segue 的 destinationViewController 属性以查看它是哪种 View Controller 。如果它不是 ViewController2,那么问题就出在您的 Storyboard中。要么你得到了一个你没有预料到的 segue,要么 Storyboard中的目的地类不是 ViewController2

处理 prepareForSegue 的更好模式如下:

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject!) {
// ALWAYS check the segue identifier first! If you forgot to put one on
// your segue in the storyboard, then you should see a compiler warning.
switch segue.identifier {
case "SegueToViewController2":
guard let destination = segue.destinationViewController as? ViewController2 else {
// handle the error somehow
return
}
default:
// What happens when the segue's identifier doesn't match any of the
// ones that you expected?
}
}

关于ios - 从 Swift 2 中的父 Controller 访问容器 View Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38000889/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com