выполнить представление коллекции segue внутри таблицы - PullRequest
0 голосов
/ 30 сентября 2019

У меня есть UICollectionview, который встроен в UITableView. теперь я хочу выполнить переход к новому ViewController, когда пользователь щелкнул по ячейке

import UIKit

class productsTableViewCell: UITableViewCell, UICollectionViewDataSource, UICollectionViewDelegate, UICollectionViewDelegateFlowLay {100

}

Я не смог выполнить переход к новому контроллеру представления, пожалуйста, помогите мне. спасибо

1 Ответ

1 голос
/ 30 сентября 2019

Вы не можете использовать performSegue() в UITableViewCell подклассе, потому что этот метод доступен только в UIViewController s.

. Существует простое решение вашей проблемы - вы можете добавить «обратный вызов» вячейку и заполните этот обратный вызов в контроллере представления.

Ваша ячейка:

class ProductsTableViewCell: UITableViewCell {
    var didSelectItemAction: ((IndexPath) -> Void)?

    //...

    func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) {
        didSelectItemAction?(indexPath)
    }
}

Код в контроллере представления:

class ViewController: UITableViewController {
    override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        let cell = tableView.dequeueReusableCell(withIdentifier: "identifier", for: indexPath)
        guard let productsCell = cell as? ProductsTableViewCell else {
            return cell
        }

        productsCell.didSelectItemAction = { [weak self] indexPath in
            self?.performSegue(withIdentifier: "yourID", sender: self)
        }

        return productsCell
    }

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