У меня есть контроллер представления, в котором мне нужно получить количество документов, чтобы я мог генерировать и точное количество ячеек в UIcollectionView.Проблема, с которой я столкнулся, заключается в том, что я никогда не смогу получить счетчик до того, как он будет использован методом источника данных UIcollectionview.Это всегда возвращает ноль.
Существует ли общий способ заставить код получить это число и передать его методу UIcollectionviewDatasource, прежде чем он сможет вернуть нулевое значение?
Я новичокк кодированию в целом, поэтому мои извинения, если это простой ответ.Но у меня все время возникают проблемы с синхронизацией, так как я начал использовать облачное хранилище в своих приложениях "
override func viewDidLoad() {
super.viewDidLoad()
itemEntryRef.order(by: "_id", descending: false).getDocuments() {(querySnapshot, err) in
print("query attempted")
if let err = err {
// There was an error
print("query failed")
print(err)
} else {
print("query successful")
print(querySnapshot!.count)
self.itemCount = querySnapshot!.count
}
}
//UIcollectionView DataSource
func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
return self.itemCount
}
func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
let cell = ledgerCollectionView.dequeueReusableCell(withReuseIdentifier: testString, for: indexPath)
cell.backgroundColor = UIColor(named: "translucent")
cell.layer.borderWidth = 0.5
return cell
}