gpt4 book ai didi

arrays - 将图像数组从 tableview 传递到 collectionview

转载 作者:行者123 更新时间:2023-11-30 11:19:18 25 4
gpt4 key购买 nike

我必须查看 Controller 。第一个是 TableView ,第二个是第二个详细 View 中的 Collection View 。我创建了一个图像数组的数组。我希望单击单元格表并将一组图像传递到 Collection View 。我用数组的数组定义了一个文件模型。我还为单元格表和单元格 Collection View 定义了两个 Controller 。

问题:我无法传递这个数组图像数组。我确实使用prepare for segue 将字符串数组详细传递到 TextView 。沃尔克,我非常感谢你的帮助。可以到GitHub看看该项目:https://github.com/ricardovaldes/hotelesWithIos9

目前,当我单击表格单元格时,我会获得一些不同数组的图片,并且无论我单击哪个单元格,总是相同的图片。

import UIKit

class DetailVCViewController: UIViewController, UICollectionViewDelegate, UICollectionViewDataSource {

let hotel = Hotel()
var myDescription = ""

@IBOutlet weak var myCollection: UICollectionView!

@IBOutlet weak var label: UILabel!

@IBOutlet weak var hotelDescription: UITextView!

override func viewDidLoad() {
super.viewDidLoad()

hotelDescription.text = myDescription
}


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

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

let cell = myCollection.dequeueReusableCell(withReuseIdentifier: "collectionCell", for: indexPath) as! CollectionCellCollectionViewCell

cell.cellImage.image = UIImage(named: hotel.array[indexPath.row][indexPath.row])

return cell
}

@IBAction func reservar(_ sender: UIButton) {

}


}


import UIKit

class ViewController: UIViewController, UITableViewDataSource, UITableViewDelegate {

@IBOutlet weak var myTable: UITableView!

let hotel = Hotel()

override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.

let cell = UINib(nibName: "TableViewCell", bundle: nil)
myTable.register(cell, forCellReuseIdentifier: "tableCell")

}

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

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {

let cell = myTable.dequeueReusableCell(withIdentifier: "tableCell", for: indexPath) as! TableViewCell

cell.hotelName.text = hotel.hotelNames[indexPath.row]
cell.hotelImage.image = UIImage(named: hotel.hotelImages[indexPath.row])
cell.hotelImage.contentMode = .scaleToFill
return cell

}
func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
return 250
}

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

override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
let index = myTable.indexPathForSelectedRow
let indexNumber = index?.row
let secondVC = segue.destination as! DetailVCViewController
secondVC.myDescription = hotel.description[indexNumber!]

}

}

最佳答案

DetailVCViewController 中,您正在创建一个新的 Hotel 对象,因此该对象与您在 TableView 中选择的对象不同ViewController 中的cell。将 hotel 对象替换为 String 数组,如下所示,以便您可以将该数组从选定的 TabelView 单元格索引传递到 DetailVCViewController

class DetailVCViewController: UIViewController, UICollectionViewDelegate, UICollectionViewDataSource {

var array: [String] = []
var myDescription = ""
....
}

现在在ViewController中,更新prepare(for segue:,如下所示以传递数组

class ViewController: UIViewController, UITableViewDataSource, UITableViewDelegate {

....

override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
let index = myTable.indexPathForSelectedRow
let indexNumber = index?.row
let secondVC = segue.destination as! DetailVCViewController
secondVC.myDescription = hotel.description[indexNumber!]
secondVC.array = hotel.array[indexNumber!]

}
}

关于arrays - 将图像数组从 tableview 传递到 collectionview,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51460807/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com