невозможно удалить из очереди ячейку с идентификатором в два TableView View Controller Swift4 - PullRequest
0 голосов
/ 27 января 2019

Я использую два TableViews в ViewController, но я получаю эту ошибку, когда доходит до второго TableViewCell, cartProductCell.У них обоих есть собственные классы и розетки, так как это было проблемой для многих в других постах.Это первый раз, когда я делаю это, и я не могу найти решение для этого.Может быть, это потому, что я использую пользовательские классы для ячеек?В учебных пособиях я обнаружил, что в двух TableViews не использовались пользовательские классы.

В редакторе раскадровки все хорошо подключено, и идентификаторы верны.Вот функция:

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

        var cell:UITableViewCell?

//        if tableView == self.worksTableView && CartViewController.bookedWoksArray.count > 0 {
        if tableView == self.worksTableView  {

            let cell = tableView.dequeueReusableCell(withIdentifier: "cartWorkCell", for: indexPath as IndexPath) as! CartWorkTableViewCell
            cell.workImageView.image = CartViewController.bookedWoksArray[indexPath.row].0
            cell.workNameLabel.text = CartViewController.bookedProductsArray[indexPath.row].1
            cell.workPriceLabel.text = CartViewController.bookedWoksArray[indexPath.row].2

        } // else {return}

//         else if tableView == self.worksTableView && CartViewController.bookedProductsArray.count > 0 {
        if tableView == self.worksTableView {


            let cell = tableView.dequeueReusableCell(withIdentifier: "cartProductCell", for: indexPath as IndexPath) as! CartProductTableViewCell

            cell.cartProductImageView.image = CartViewController.bookedProductsArray[indexPath.row].0
            cell.cartProductNameLabel.text = CartViewController.bookedProductsArray[indexPath.row].1
            cell.cartProductPriceLabel.text = CartViewController.bookedProductsArray[indexPath.row].2
        } //else {return}
        return cell!

    }

Как обычно большое спасибо

1 Ответ

0 голосов
/ 28 января 2019

После нескольких попыток и после исправления глупой ошибки я, наконец, заставил ее работать, присвоив значение пользовательских ячеек cell и код функции теперь:

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

        var cell:UITableViewCell?

        if tableView == self.worksTableView  {

            let workCell = tableView.dequeueReusableCell(withIdentifier: "cartWorkCell", for: indexPath) as! CartWorkTableViewCell
            workCell.workImageView.image = CartViewController.bookedWoksArray[indexPath.row].0
            workCell.workNameLabel.text = CartViewController.bookedWoksArray[indexPath.row].1
            workCell.workPriceLabel.text = CartViewController.bookedWoksArray[indexPath.row].2
            cell = workCell
        } 

        if tableView == self.productsTableView{


            let productCell = tableView.dequeueReusableCell(withIdentifier: "cartProductCell", for: indexPath) as! CartProductTableViewCell

            productCell.cartProductImageView.image = CartViewController.bookedProductsArray[indexPath.row].0
            productCell.cartProductNameLabel.text = CartViewController.bookedProductsArray[indexPath.row].1
            productCell.cartProductPriceLabel.text = CartViewController.bookedProductsArray[indexPath.row].2
            cell = productCell
        }
        return cell!

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