gpt4 book ai didi

ios - Swift segue fatal error

转载 作者:行者123 更新时间:2023-11-28 07:04:30 24 4
gpt4 key购买 nike

ViewController 中:

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
if (segue.identifier == "Segue") {
var svc = segue.destinationViewController as! ViewController2;

svc.vericik = self.vericik
}
}


@IBAction func gotoView2(sender: AnyObject) {
self.performSegueWithIdentifier("Segue", sender: self)
self.presentViewController(ViewController2(), animated: true, completion: nil)
}

ViewController2 中:

var vericik: String!

@IBOutlet weak var VeriYeri: UILabel!

override func viewDidLoad() {
super.viewDidLoad()
VeriYeri.text = vericik
}

当我单击 ViewController 上的按钮时,ViewController2 页面出现在屏幕上,我可以看到来自 ViewController 的 segue 数据。但在那之后,发生了一个错误:

fatal error: unexpectedly found nil while unwrapping an Optional value

我哪里做错了?

最佳答案

你的问题是这一行:

self.presentViewController(ViewController2(), animated: true, completion: nil)

这行代码正在创建一个第二个 ViewController2。第一个是在您执行 self.performSegueWithIdentifier("Segue", sender: self) 时为您创建的。第二个 ViewController2 永远不会被初始化,所以它的 vericik 属性在 viewDidLoad 运行时仍然是 nil 并隐式地展开可选的使用 VeriYeri.text = vericik(因为 vericik 被声明为 String!)。

要解决这个问题,只需删除这行代码:

self.presentViewController(ViewController2(), animated: true, completion: nil)

不需要。 segue 为您创建ViewController2,您在prepareForSegue 中对其进行初始化,然后segue 呈现ViewController2。使用 segues 时绝对不需要调用 presentViewController

关于ios - Swift segue fatal error ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31126353/

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