Как я могу получить доступ к своему хранилищу и поместить его в представление моей коллекции - PullRequest
0 голосов
/ 26 апреля 2019

Я застрял в течение нескольких часов, и я не могу понять это.Я все еще новичок в программировании, может быть, вы можете помочь мне

Я уже создал функцию, где она загружает все данные в firebase Хранилище

//this is to call the other class
     var discover = MainViewController()


    func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [UIImagePickerController.InfoKey : Any]) {
        let image = info[UIImagePickerController.InfoKey.originalImage] as! UIImage
        imageCam.image = image
        MainViewController.stuffImages.append(image)
        MainViewController.Stuff.append("yes")

        picker.dismiss(animated: true, completion: nil)

    }
/// this is how it looks in the collection view 

 func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
        return MainViewController.Stuff.count
    }

    func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {

        let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "Cell", for: indexPath) as! DiscoverCollectionViewCell

        cell.titleLable.text = MainViewController.Stuff[indexPath.item]
        cell.imageView.image = MainViewController.stuffImages[indexPath.item]
        return cell

    }

как я могу вызвать свое хранилище в firebaseи поместите его в cell.imageView.image

1 Ответ

0 голосов
/ 26 апреля 2019

Обычно я создаю отдельный файл источника данных, как показано ниже.

class DiscoverCollectionDataSource: NSObject, UICollectionViewDataSource {

    private var stuffs: [String]
    private var stuffImages: [UIImage]

    init(stuffs: [String], stuffImages: [UIImage]) {

        self.stuffImages = stuffImages

        super.init()
    }

    func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
        return self.stuffImages.count
    }

    func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {

        let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "Cell", for: indexPath) as! DiscoverCollectionViewCell

        cell.gamerShopControllerDelegate = self.gamerShopControllerDelegate

        let stuffTitle = self.stuffs[indexPath.row]
        let stuffImage = self.stuffImages[indexPath.row]

        cell.titleLable.text = stuffTitle
        cell.imageView.image = stuffImage

        return cell

    }

}

После этого вы можете связать источник данных в представлении вашей коллекции.

class DiscoverCollectionView: UICollectionViewController {

    // Properties
    var stuffs: [String]
    var stuffImages: [UIImage]

    lazy var dataSource: DiscoverCollectionDataSource = {
        return DiscoverCollectionDataSource(stuffs: self.stuffs, stuffImages: self.stuffImages)
    }()

    override func viewDidLoad() {
        super.viewDidLoad()

        // Collection View
        collectionView?.dataSource = dataSource
    }

}

Наконец, вы можете либо получить данные из ваших API в DiscoverCollectionView, либо вы можете передать данные в DiscoverCollectionView.

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...