我有一个自定义类和一个 View Controller 。
我的自定义类:
class ChatManager:NSObject {
func messageArrived() {
//When Message arrives I am handling it from here
//I need something like that: Viewcontroller.updateTable()
}
}
当消息从 Internet 到达时,我需要更新 View Controller 中的 TableView 。所以我的意思是我必须从 messageArrived
方法调用 View Controller 方法。我该怎么做?
最佳答案
下面是一个使用委托(delegate)的简单例子:
在聊天管理器类之前声明委托(delegate)
protocol ChatManagerDelegate {
func manageMessage()
}
当消息到达时,调用委托(delegate)方法进行处理。
class ChatManager: NSObject {
var delegate: ChatManagerDelegate?
func messageArrived() {
self.delegate!.manageMessage()
}
}
在您的 View Controller 中,记得将聊天管理器的委托(delegate)设置为 self。
class ViewController: ChatManagerDelegate {
var manager = ChatManager()
manager.delegate = self
func manageMessage() {
self.updateTable()
}
}
关于ios - 从自定义类调用 View Controller 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30013263/