Как передать изображение в массив UIImage из другого класса? - PullRequest
0 голосов
/ 25 апреля 2019

Итак, у меня есть изображение, которое я могу создать с камеры, и я хочу перенести его в другой класс с типом UIImage, в котором уже есть пара вещей.Массив связан с UICollectionView.

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

Это функция collectionView

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

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

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

    }

, а ниже массив, который я создал

let stuffImages : [UIImage] = [

        UIImage(named: "1")!,
        UIImage(named: "2")!,
        UIImage(named: "3")!,]

Это другой класс с моей тщетной попыткой


 var discover = MainViewController()
    func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [UIImagePickerController.InfoKey : Any]) {
        let image = info[UIImagePickerController.InfoKey.originalImage] as! UIImage
        imageCam.image = image

        discover.stuffImages[]

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

    }

Я просто потерян и буду очень признателен за вашу помощь, спасибо

Ответы [ 2 ]

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

Я хотел бы оценить вашу работу.

Это функция collectionView

 func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) {
    print("tapped \(indexPath.item)")
    var val = array[indexPath.item] //val is the which is going to give you the exact one
    let storyBoard : UIStoryboard = UIStoryboard(name:"Main", bundle :nil)
    let newVC = storyBoard.instantiateViewController(withIdentifier : "image") as! ViewControllerImage
    newVC.array.append(value) //Line used to append a value
    self.present(newVC, animated: true, completion: nil)
}

Это в другом классе

Здесь я создал массив строк, в вашем случае единственное отличие состоит в UIImage

import UIKit
class ViewControllerImage: UIViewController, UITextViewDelegate {
@IBOutlet weak var imgz: UIImageView!

var array : [String] = [
"hello"
]

override func viewDidLoad() {
    super.viewDidLoad()
    print("value appended \(array)")       
}

Надеюсь, что это полезно ... Еще раз я хотел бы оценитьваши усилия по обучению

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

Изменить массив stuffImages на статическую переменную

static var stuffImages : [UIImage] = [
        UIImage(named: "1")!,
        UIImage(named: "2")!,
        UIImage(named: "3")!,]

И когда вы хотите добавить новое изображение, добавьте в этот массив

MainViewController.stuffImages.append(image)

В представлении MainViewController для перезагрузки коллекции

override func viewWillAppear(_ animated: Bool) {
    super.viewWillAppear(animated)
    self.collectionView.reloadData()
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...