我有一个XIB
,我想在其中更改标签文本。我在那里创建了function
来设置标签文本。
在另一个控制器中,我使用的是xib
,我想在该控制器中更改该标签。如何访问该标签?现在我正在做某事,但是我认为e重新创建视图并且标签未更新。
XIB类
import UIKit
class MessageView: UIView {
@IBOutlet var messageLabel: UILabel!
func setMessage(error: String) {
self.messageLabel.text = error
}
}
ViewController
func updateMessage(error: Error){
let messageView = MessageView()
messageView.setMessage(error: error.localizedDescription)
}
答案 0 :(得分:0)
问题是您没有调用需要更改标签文本的messageView实例,而是创建了messageView的新实例,然后更改了标签。
最好的做法是使用协议/委托模式在对象之间进行通信并从那里更改文本。
答案 1 :(得分:0)
您需要做的就是在viewcontroller中添加messageView的引用。如果您假设使用的故事板只是添加@IBOutlet weak var messageView : MessageView!
,然后只需访问messageView.messageLabel.text = “some message”
或者只使用协议和委托。