UICollectionViewCells在最初为空时从通知重新加载数据调用后不出现

时间:2017-04-21 09:55:38

标签: ios swift uicollectionview

我有一个iOS消息应用程序,它会在首次启动时加载应用程序后立即显示主屏幕。

如果用户决定直接进入消息屏幕,那么在从我们的服务器获取消息时,它将最初为空白。

每次添加新邮件以重新加载MessagesCollectionView时,我都会从我的邮件模型发布通知:

    NotificationCenter.default.post(name: .reloadMessagesCollectionView, object: nil)

然后我有一个观察者,我添加了在我的MessagesViewController

中接收此通知
    override func viewDidLoad() {
        super.viewDidLoad()

        NotificationCenter.default.addObserver(self, selector: #selector(reloadMessagesCollectionView(_:)), name: .reloadMessagesCollectionView, object: nil)
    }

收到通知时,会调用此函数:

    func reloadMessagesCollectionView(_ notification: Notification) {

        DispatchQueue.main.async {
            self.messagesCollectionView.reloadData()
        }
    }

但是,尽管正在填充messageModel,调用reloadData并且print语句显示collectionView数据源方法正在接收正确的数据,但collectionView保持空白并且不显示新填充的单元格。

转到主屏幕然后再返回会导致正确填充MessagesCollectionView。

任何想法我可能做错了或需要添加?

0 个答案:

没有答案