ios - 从自定义类调用 View Controller 方法

标签 ios swift

我有一个自定义类和一个 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/

相关文章:

ios - SpriteKit SKEmitternode Targetnode 修改整个Node

swift - 从 View Controller 推送时显示导航栏和状态栏

ios - 无法在 HOME.VC 文本标签中显示 JSON 结果

ios - 在哪里可以下载 OS X 10.10 SDK 以在 Xcode 6.3 中运行 Mac 应用程序?

objective-c - iOS - 在 C 代码中使用 Objective C 变量

objective-c - sqlite 未关闭的读取事务

ios - items' 产生 '(Source) -> Disposable' ,而不是 UICollectionLayout 的预期上下文结果类型 '(_) -> _' 错误

swift - 将属性存储在已删除的 couchbase 文档中

ios - SKView 集成到 UIViewController 中,UITextFields 滞后

string - 在 Swift 中从字符串到 NSDate