每次locationManager(_ manager: CLLocationManager, didRangeBeacons beacons: [CLBeacon], in region: CLBeaconRegion)
做一个循环时我都要更新collectionview,所以我想把beacons
变量从它传递到collectionview,如何在不使用全局变量的情况下完成它。
这是代码:
func locationManager(_ manager: CLLocationManager, didRangeBeacons beacons: [CLBeacon], in region: CLBeaconRegion) {
if !beacons.isEmpty {
//do things
}
else{
//do other things
}
}
func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
let cell = collectionView.dequeueReusableCell(withReuseIdentifier: cellId, for: indexPath) as! buttonBeaconsView
//i want to use beacons data here
//cell.backgroundColor = UIColor(white: 1, alpha: 0.8)
//cell.createButton()
//cell.layer.masksToBounds = true
return cell
}
提前致谢
答案 0 :(得分:1)
使您的视图控制器充当位置管理器的代理。对locationManager(_:didRangeBeacons:in:)
的调用将发送给您的视图控制器。然后,它可以更新 INSTANCE 变量(不是全局变量)来保存新的信标信息列表,并告诉集合视图更新其内容。