[英]Call view controller method from custom class
我有一個自定義類和一個視圖控制器。
我的自定義類:
class ChatManager:NSObject {
func messageArrived() {
//When Message arrives I am handling it from here
//I need something like that: Viewcontroller.updateTable()
}
}
當消息從互聯網到達時,我需要在視圖控制器中更新tableview。 所以我的意思是我必須從messageArrived
方法調用視圖控制器方法。 我怎樣才能做到這一點 ?
這是使用委托的簡單示例:
在您的聊天管理器課程之前聲明委托
protocol ChatManagerDelegate {
func manageMessage()
}
當消息到達時,調用委托方法進行處理。
class ChatManager: NSObject {
var delegate: ChatManagerDelegate?
func messageArrived() {
self.delegate!.manageMessage()
}
}
在視圖控制器中,請記住將聊天管理器的委托設置為self。
class ViewController: ChatManagerDelegate {
var manager = ChatManager()
manager.delegate = self
func manageMessage() {
self.updateTable()
}
}
這可能是一種實現:
視圖控制器:
class ViewController: UIViewController,ChatManagerDelegate {
override func viewDidLoad() {
super.viewDidLoad()
let myChatManager = ChatManager()
myChatManager.delegate = self
}
func messageDidArrive() {
// Do Things here.
}
}
Chatmanager:
class ChatManager:NSObject {
var delegate:ChatManagerDelegate?
func messageArrived() {
//When Message arrives I am handling it from here
//I need something like that: Viewcontroller.updateTable()
}
}
委托協議:
protocol ChatManagerDelegate{
func messageDidArrive()
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.