提问人:PvUIDev 提问时间:11/6/2022 更新时间:11/6/2022 访问量:111
通知中心在 iOS Swift 的 collectionView DidSelect 中不起作用?
Notification Center is not working in collectionView DidSelect in iOS Swift?
问:
我正在尝试从通知 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)
}
}
}
}
任何帮助非常感谢...
答:
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 演示?
评论