gpt4 book ai didi

ios - Swift:无法使用发件人通过 segue 设置 [String]

转载 作者:行者123 更新时间:2023-11-28 09:40:09 25 4
gpt4 key购买 nike

美好的一天。我正在创建自己的第一个应用程序,但遇到了问题。我有一个带有可点击内容的 AR 场景,当您触摸它们时,segue 会触发到 ViewController 中,并根据屏幕上的触摸内容设置 View Controller 标签和 TextView 。

说明: 1. CaseViewController 是目标 View Controller 。 2. "artNews"和 "politicalNews"是字符串数组,我在其中写了 3 个字符串,它们被定义并且永远不会为零。

问题:由于 segueInputText 为 nil,我遇到了崩溃。为什么它变成零,我该如何更正它?

    override func prepare(for segue: UIStoryboardSegue, sender: Any?) {

let destinationVC = segue.destination as! CaseViewController
destinationVC.segueInputText = sender as? [String]

print("\(String(describing: sender))")
}

override func touchesEnded(_ touches: Set<UITouch>, with event: UIEvent?) {

guard let touchLocation = touches.first?.location(in: sceneView),
let hitNode = sceneView?.hitTest(touchLocation, options: nil).first?.node,
let nodeName = hitNode.name
else { return }

if nodeName == imageNameArray[0] {

performSegue(withIdentifier: "CaseViewController", sender: artNews)

} else {
print("Found no node connected to \(nodeName)")
return
}

if nodeName == imageNameArray[1] {

performSegue(withIdentifier: "CaseViewController", sender: politicalNews)

} else {
print("Found no node connected to \(nodeName)")
return
}

CaseViewController 连接了 UILabels 和 UITextViews,并且:

    var segueInputText : [String]? {
didSet {
setupText()
}
}

func setupText() {

// Why are these values nil?
testLabel.text = segueInputText![0]
ingressLabel.text = segueInputText![1]
breadLabel.text = segueInputText![2]

testLabel.reloadInputViews()
ingressLabel.reloadInputViews()
breadLabel.reloadInputViews() //breadLabel is a UITextView
}

感谢您阅读我的问题!亲切的问候。

最佳答案

删除 didSet block ,因为当您在 prepare 中设置数组时,观察触发器并且 lbl 仍然是 nil

func setupText() {
if testLabel == nil { // if one is nil then all of them too
return
}
}

关于ios - Swift:无法使用发件人通过 segue 设置 [String],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51361335/

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