Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Swift 如何从自定义单元格转到imageView?_Swift_Xcode_Imageview_Tableview - Fatal编程技术网

Swift 如何从自定义单元格转到imageView?

Swift 如何从自定义单元格转到imageView?,swift,xcode,imageview,tableview,Swift,Xcode,Imageview,Tableview,我已经有了一个自定义表视图单元格的数据数组。目前只包括一个imageView和标签 我想使用imageView创建一个单独的视图控制器,将小缩略图显示为大版本。但是,当然,使用我的数据数组,以便在宿主imageView中加载正确的图像 基本上,我想创建一个HostImageView,当我从列表中选择数据数组时,它将加载我的数据数组 我当前的阵列如下所示: import UIKit class PictureViewController: UIViewController { @IBO

我已经有了一个自定义表视图单元格的数据数组。目前只包括一个imageView和标签

我想使用imageView创建一个单独的视图控制器,将小缩略图显示为大版本。但是,当然,使用我的数据数组,以便在宿主imageView中加载正确的图像

基本上,我想创建一个HostImageView,当我从列表中选择数据数组时,它将加载我的数据数组

我当前的阵列如下所示:

import UIKit

class PictureViewController: UIViewController {

    @IBOutlet weak var tableView: UITableView!
    var pictures: [picture] = []

    override func viewDidLoad() {
        super.viewDidLoad()
        pictures = createArray()

        tableView.rowHeight = 120


        tableView.delegate = self
        tableView.dataSource = self
    }
    func createArray() -> [picture] {

        var tempPictures: [picture] = []

        let picture1 = picture(image: #imageLiteral(resourceName: "Arteries Hand"), title: "Arteries Hand")
        let picture2 = picture(image: #imageLiteral(resourceName: "Arteries Upper Arm"), title: "Arteries Upper Arm")
        let picture3 = picture(image: #imageLiteral(resourceName: "Arteries Shoulder"), title: "Arteries Shoulder")
        let picture4 = picture(image: #imageLiteral(resourceName: "Arteries Upper Limb"), title: "Arteries Upper Limb")

    tempPictures.append(picture1)
    tempPictures.append(picture2)
    tempPictures.append(picture3)
    tempPictures.append(picture4)

        return tempPictures
    }
}


extension PictureViewController: UITableViewDataSource, UITableViewDelegate {



    func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        return pictures.count
    }

    func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        let picture = pictures[indexPath.row]

        let cell = tableView.dequeueReusableCell(withIdentifier: "pictureCell") as! pictureCell

     cell.setPicture(picture: picture)

        return cell
    }


    func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
        performSegue(withIdentifier: "segue", sender: self)

    }
}
PictureCell:

import UIKit

class pictureCell: UITableViewCell {

    @IBOutlet weak var pictureImageView: UIImageView!
    @IBOutlet weak var pictureTitleLabel: UILabel!

    func setPicture(picture: picture) {
        pictureImageView.image = picture.image
        pictureTitleLabel.text = picture.title
    }

}
上述方法触发以下类方法,您可以使用它来传输数据:

override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
    guard let segueId = segue.identifier else { return }

    switch segueId {
    case "segue":

        let destinationVC = segue.destination as! YournextVC
        destVC.pictures = self.pictures // This is how you transfer info to the next View Controller 

    default:
        break
    }
}

你能展示你在picture cell类中写的东西吗?你的问题不清楚。你的
didSelectRowAt
实现现在是不必要的,因为你所做的只是调用
performSegue
,你可以直接在情节提要中配置它。
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
    guard let segueId = segue.identifier else { return }

    switch segueId {
    case "segue":

        let destinationVC = segue.destination as! YournextVC
        destVC.pictures = self.pictures // This is how you transfer info to the next View Controller 

    default:
        break
    }
}