【发布时间】:2019-02-21 12:23:49
【问题描述】:
感谢任何帮助。 我是 Ios 开发的新手,我正在尝试更改位于我的第一个初始视图控制器中的标签文本。当我按下第二个视图控制器中的按钮时,我希望此文本发生更改,该按钮与最初的视图控制器相连。
这是我的第一个视图控制器
import UIKit
protocol gameModeDelegate {
func didTapChoice(test:String)
}
class ViewController2: UIViewController {
var selectionDelegate:gameModeDelegate!
@IBAction func chooseButton(_ sender: Any) {
selectionDelegate.didTapChoice(test: "TEST")
let selectVC = storyboard?.instantiateViewController(withIdentifier: "VC1") as! ViewController
present(selectVC,animated: true,completion: nil)
}
override func viewDidLoad() {
super.viewDidLoad()
}
}
这是我在第二个标签所在的地方所做的
override func viewDidLoad() {
super.viewDidLoad()
let selectVC2 = storyboard?.instantiateViewController(withIdentifier: "VC1") as! ViewController2
selectVC2.selectionDelegate = self
winningLabel.isHidden = true
winningLabel.center = CGPoint(x: winningLabel.center.x, y: winningLabel.center.y - 400)
playAgainoutlet.isHidden = true
playAgainoutlet.center = CGPoint(x: playAgainoutlet.center.x, y: playAgainoutlet.center.y + 400)
}
extension ViewController: gameModeDelegate{
func didTapChoice(test: String) {
CommunicationLabel.text = test
}
}
到目前为止,我尝试了这两种方法,但一直收到此错误。
线程 1:致命错误:在展开可选值时意外发现 nil
【问题讨论】:
-
这是因为视图还没有加载,你的标签此时将为零,所以它给出了错误
标签: ios swift mobile fatal-error