我的问题很简单,我在一个类中声明了一个IBoutlet(标签),我需要从另一个类改变它的内容,这可能吗? 编辑:IBoutlet的视图通过滚动视图
加载到另一个类中第一堂课:
var historyVariable = ""
class FirstViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
// here a code to set a value to historyVariable when button pressed
Text().call()
}
}
第二课
class Text: UIViewController {
@IBOutlet var History: UILabel!
override func viewDidLoad() {
super.viewDidLoad()
}
func call() {
History.text = "\(historyVariable)"
}
}
在尝试将文本设置为历史记录标签时展开“可选”值时,意外发现nil意外错误
答案 0 :(得分:0)
假设text()
实际上是Text()
,那将创建一个新的空Text
对象。由于它不是控制器层次结构的一部分,因此在您调用call()
时不会加载其视图和其他出口。
您需要从故事板(或其他)实例化Text
控制器并将其呈现以便正确初始化,或者使用已经处于活动状态的控制器...如果这是您的意图。