我有一个自定义类和一个视图控制器.
我的自定义类:
class ChatManager:NSObject {
func messageArrived() {
//When Message arrives I am handling it from here
//I need something like that: Viewcontroller.updateTable()
}
}
Run Code Online (Sandbox Code Playgroud)
当消息从互联网到达时,我需要在视图控制器中更新tableview.所以我的意思是我必须从messageArrived方法中调用一个视图控制器方法.我怎样才能做到这一点 ?
这是一个使用委托的简单示例:
在聊天管理器课程之前声明代理人
protocol ChatManagerDelegate {
func manageMessage()
}
Run Code Online (Sandbox Code Playgroud)
当消息到达时,调用委托方法来处理它.
class ChatManager: NSObject {
var delegate: ChatManagerDelegate?
func messageArrived() {
self.delegate!.manageMessage()
}
}
Run Code Online (Sandbox Code Playgroud)
在视图控制器中,记得将聊天管理器的委托设置为self.
class ViewController: ChatManagerDelegate {
var manager = ChatManager()
manager.delegate = self
func manageMessage() {
self.updateTable()
}
}
Run Code Online (Sandbox Code Playgroud)