为什么不调用委托方法?

时间:2018-10-05 20:19:39

标签: swift swift-protocols

我试图通知ChatViewController,聊天已在MessagesViewController中使用协议删除,但从未调用过ChatViewController中实现的委托方法。
在navigationController层次结构中,ChatViewController位于MessagesViewController的顶部。

timeout.flush()

1 个答案:

答案 0 :(得分:1)

似乎

weak var delegate: MessagesViewControllerDelegate?

nil,无论您如何展示,都必须将其设置为ChatViewController展示的实例

let chat = ///
self.delegate = chat
self.navigationController?.pushViewController(chat,animated:true)

也可以

chat.messagesVC = self

如此

 messagesVC = storyboard?.instantiateViewController(withIdentifier: "MessagesViewController") as! MessagesViewController
 messagesVC?.delegate = self

不是当前显示的messagesVC,所以请注释以上两行