通知中心在 iOS Swift 的 collectionView DidSelect 中不起作用?

Notification Center is not working in collectionView DidSelect in iOS Swift?

提问人:PvUIDev 提问时间:11/6/2022 更新时间:11/6/2022 访问量:111

问:

我正在尝试从通知 addObserve 接收数据。但观察者没有收到任何数据。从 collectionView DidSelect 发布数据,并从另一个 UIViewController 接收数据。它不调用。

这是我的代码:

    public func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath)
    {
        let imageDataDict:[String: Any] = ["image": self.setTabData[id]]
        print("image dict index::::", imageDataDict)
        
        
        NotificationCenter.default.post(name: Notification.Name("dynamicIndex"), object: nil, userInfo: imageDataDict)
     }

接收端 UIViewController 我添加了这段代码

在 ViewDidload 中添加此内容

     NotificationCenter.default.addObserver(self, selector: #selector(self.dynamicViewIndex(notification:)), name: Notification.Name("dynamicIndex"), object: nil)

通知中心观察者 objc 函数

    @objc func dynamicViewIndex(notification: NSNotification) {
         // handling code

         print("dynamic index value observered", notification)



        if let dict = notification.userInfo as NSDictionary? {


            if let ValueID = dict["image"] as? UInt {

                print("UInt index val:::", ValueID)

                }

            }
        }

    }

任何帮助非常感谢...

iOS Swift UIVieviceController UIChationView NotificationCenter

评论


答:

1赞 Shehata Gamal 11/6/2022 #1

对于此方法

@objc func dynamicViewIndex(notification: NSNotification) {

要调用包含它的 vc,必须在触发集合的 didSet 时显示/激活,如果它未显示/激活,则正确的模式是使用 segue/delegate

评论

0赞 PvUIDev 11/6/2022
实际上,视图处于活动状态并显示。但它仍然没有从观察者那里接收到任何数据
0赞 Shehata Gamal 11/6/2022
在 的开头添加一个断点?dynamicViewIndex
0赞 PvUIDev 11/6/2022
在断点发布消息中触发,但在接收端未触发添加观察者
0赞 Shehata Gamal 11/6/2022
如果您可以分享问题的 github 演示?