如何在课外访问IBOutlet?

  • 本文关键字:访问 IBOutlet ios swift
  • 更新时间 :
  • 英文 :


我有一个XIB,我想在其中更改标签文本。在那里,我创建了一个function来设置标签文本。

在另一个控制器中,我正在使用该xib,我想更改此控制器中的标签。如何访问该标签?现在我正在做一些事情,但我认为 e 重新创建视图并且标签没有更新。

XIB 类

import UIKit
class MessageView: UIView {
@IBOutlet var messageLabel: UILabel!
func setMessage(error: String) {
self.messageLabel.text = error
}
}

视图控制器

func updateMessage(error: Error){
let messageView = MessageView()
messageView.setMessage(error: error.localizedDescription)
}

问题是您没有调用需要更改标签文本的 messageView 实例,而是创建 messageView 的新实例,然后更改标签。

最好的做法是使用协议/委托模式在对象之间进行通信并从那里更改文本。

您需要做的就是在视图控制器中添加消息视图的引用。如果您使用故事板,我假设您只是添加@IBOutlet weak var messageView : MessageView!然后您可以像这样访问标签messageView.messageLabel.text = “some message”

或者只是使用协议和委托。

最新更新