从另一个 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 控制器并呈现它以便正确初始化,或者使用已经激活的控制器...如果这是您的意图。