多个选定的行以在其他视图控制器中显示多个图像



UITableViewController中选择一个字符串,在另一个视图控制器中显示同名的图片,该图的工作原理。

但是问题是我想选择多个字符串以显示多个不同的照片。我一直在尝试添加另一个iboutlet,加倍的东西,但它只是两次向我展示了同一张照片。

有什么想法吗?

多重选择= true

第一个VC Segue:

override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
    if segue.identifier == "tablesegue" {
        if let indexPath = self.tableView.indexPathForSelectedRow {
            let selectedRow = indexPath.row
            let passingVal = segue.destination as! Tabulka_data
            passingVal.selectedImageName = self.tableItems[selectedRow]
        }
    }
}

secondvc:

@IBOutlet weak var pic: UIImageView!
var selectedImageName:String = ""
override func viewWillAppear(_ animated: Bool) {
    self.pic.image = UIImage(named: selectedImageName)
}

两个选择

您可以尝试此

let yourDataArray = ["name 1","name 2","name 3","name 4","name 5"]
var imageSelected = [String]()
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
    return yourDataArray.count
}

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
    let cell = yourTable.dequeueReusableCell(withIdentifier: "cell", for: indexPath)
    cell.textLabel?.text = yourDataArray[indexPath.row]
    return cell
}

func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
    imageSelected.append(yourDataArray[indexPath.row])
    print(imageSelected)
}
func tableView(_ tableView: UITableView, didDeselectRowAt indexPath: IndexPath) {
    for (index, element) in imageSelected.enumerated() {
        if element == yourDataArray[indexPath.row] {
         imageSelected.remove(at: index)
        }
    }
    print(imageSelected)
}

您可以使用didSelectrowat和diddeorowat查看选择了哪个行,然后只需将images删除到第二个ViewController

相关内容

  • 没有找到相关文章

最新更新