Я пытаюсь загрузить некоторые данные в фид, основанный на данных пользователя, через Firebase, однако это не работает. Мое приложение в настоящее время организовано так, что пользователь входит в CustomTabBarController и проверяется для входа в систему и что профиль был создан, извлекая его при необходимости. Затем я отправляю пользователя на фид по:
// Go to home feed
let navController = self.viewControllers![0] as? UINavigationController
let feedVC = navController?.topViewController as? FeedViewController
if feedVC != nil {
feedVC!.getProfilePhotos()
}
Мой первый вопрос - это правильный способ загрузки в FeedViewController на CustomTabBarController? Я также звоню, чтобы заблаговременно получить данные профиля.
getProfilePhotos - это набор делегатов и протоколов, который возвращает следующий путь (я убедился, что он правильно извлекает photoURL). Затем отладчик считает, что после этого больше нет методов для запуска.
func feedProfilePhotosRetrieved(photoURLs: [String]) {
// Set photos array and reload the tableview
self.photoURLs = photoURLs
cardCollectionView.reloadData()
}
Вот мой класс FeedViewController, его свойства и viewDidLoad () / viewDidAppear ()
var feedModel = FeedViewModel()
var associates = UserProfile.shared().associates
var photoURLs = [String]()
@IBOutlet weak var cardCollectionView: UICollectionView!
override func viewDidLoad() {
super.viewDidLoad()
associates = UserProfile.shared().associates
feedModel.delegate = self
cardCollectionView.delegate = self
cardCollectionView.dataSource = self
cardCollectionView.register(CardCollectionViewCell.self, forCellWithReuseIdentifier: "sectionCell")
cardCollectionView.reloadData()
}
override func viewWillAppear(_ animated: Bool) {
getProfilePhotos()
}
Здесь я создаю ячейки в виде коллекции. Я ставлю точку останова при объявлении «cell», но она не срабатывает.
extension FeedViewController: UICollectionViewDelegate, UICollectionViewDataSource {
func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
return associates.count
}
func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "sectionCell", for: indexPath) as! CardCollectionViewCell
let card = UserProfile.shared().associates[indexPath.row]
cell.name.text = card.name
cell.poscomp.text = card.title + ", " + card.company
// Photo that we're trying to display
let p = photoURLs[indexPath.row]
// Display photo
cell.downloadPhoto(p)
cell.layer.transform = animateCell(cellFrame: cell.frame)
return cell
} }
Есть ли какие-то явно видимые ошибки, которые я пропускаю? Должен ли я вызывать вышеуказанную функцию при reloadingData ()? Спасибо за вашу помощь и дайте мне знать, если вам нужна дополнительная информация.