从自定义类调用视图控制器方法

Oka*_*kan 2 ios swift

我有一个自定义类和一个视图控制器.

我的自定义类:

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方法中调用一个视图控制器方法.我怎样才能做到这一点 ?

loz*_*219 5

这是一个使用委托的简单示例:

在聊天管理器课程之前声明代理人

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)