Несколько выбранных строк для отображения нескольких изображений в другом контроллере представления - PullRequest
0 голосов
/ 12 марта 2019

Выбор строки в UITableViewController, показывает рис с тем же именем в другом контроллере представления, который работает как следует.

Но проблема в том, что я хочу выбрать несколько строк, чтобы показать несколько разных изображений. Я пытался добавить еще один IBOutlet, дублирующий материал, но он просто показывал мне одну и ту же картинку дважды.

Есть идеи?

множественный выбор = true

Первый этап VC:

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

два варианта

1 Ответ

0 голосов
/ 13 марта 2019

Вы можете попробовать это

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, чтобы увидеть, какие строки выделены, а затем просто передать imageSelected во второй viewController

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...