【问题标题】:How to I transfer an Image to an array of UIImage from another class?如何将图像从另一个类传输到 UIImage 数组?
【发布时间】:2019-09-14 22:05:45
【问题描述】:

所以我有一个可以从相机创建的图像,我想将它传输到另一个类,它的类型为 UIImage,其中已经有一些东西。该数组连接到 UICollectionView。

我不知道该怎么做我仍然知道 swift 和一般的编程,但我只是喜欢学习。如果有人有任何建议,我将不胜感激。

这是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)

    }

我只是迷路了,非常感谢您的帮助,谢谢

【问题讨论】:

  • 这两个类是如何关联的?
  • with --> var discover = MainViewController()
  • 另一个类叫做CamViewController
  • 您是否希望将图像附加到现有数组中
  • 是的,来自另一个班级

标签: arrays swift function class


【解决方案1】:

将 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()
}

【讨论】:

  • 谢谢我已经尝试过这样做,但它没有出现在 collectionView 上。我应该在 collectionView 中添加一些东西吗?
  • @Nael 在 MainViewController 的 viewWillAppear 中重新加载 collectionview
  • 你的意思是在覆盖函数 viewDidLoad() 中?如果你不介意我问,我该怎么做?
  • override func viewWillAppear(_ animated: Bool) { //你的代码 }
  • 它仍然没有工作collectionView没有改变:(
【解决方案2】:

感谢您的工作。

这是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)")       
}

我希望它有用...再次感谢您为学习所做的努力

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多