从另一个 class 访问 IBOutlet 的内容
Accessing a content of an IBOutlet from another class
我的问题很简单,我在 class 中声明了一个 IBoutlet(标签),我需要从另一个 class 更改它的内容,这可能吗?
编辑:IBoutlet 的视图通过滚动视图
加载到另一个 class
第一个class:
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
class Text: UIViewController {
@IBOutlet var History: UILabel!
override func viewDidLoad() {
super.viewDidLoad()
}
func call() {
History.text = "\(historyVariable)"
}
}
在尝试将文本设置为历史标签时,在展开可选值时出现意外发现 nil 的错误
假设 text()
实际上是 Text()
,这将创建一个新的空 Text
对象。由于它不是控制器层次结构的一部分,因此在您调用 call()
.
时不会加载其视图和其他出口
您需要从故事板(或其他方式)实例化 Text
控制器并呈现它以便正确初始化,或者使用已经激活的控制器...如果这是您的意图。
我的问题很简单,我在 class 中声明了一个 IBoutlet(标签),我需要从另一个 class 更改它的内容,这可能吗? 编辑:IBoutlet 的视图通过滚动视图
加载到另一个 class第一个class:
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
class Text: UIViewController {
@IBOutlet var History: UILabel!
override func viewDidLoad() {
super.viewDidLoad()
}
func call() {
History.text = "\(historyVariable)"
}
}
在尝试将文本设置为历史标签时,在展开可选值时出现意外发现 nil 的错误
假设 text()
实际上是 Text()
,这将创建一个新的空 Text
对象。由于它不是控制器层次结构的一部分,因此在您调用 call()
.
您需要从故事板(或其他方式)实例化 Text
控制器并呈现它以便正确初始化,或者使用已经激活的控制器...如果这是您的意图。