Почему данные не передаются через мой segue в моем коде? - PullRequest
0 голосов
/ 11 июля 2019

Я хочу передать данные через segue в пункт назначения ViewController, когда UICollectionViewCell нажата с использованием протокола cellWasPressed(). UICollectionView встроен в UITableViewCell, что делает его делегатом для представления коллекции.

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

Вот код делегата, найденный в UITableViewCell:

 func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) {
        selectedIndex = indexPath
        selectedIndex2 = self.indexPath
        print(selectedIndex)
        print(selectedIndex2)
        delegate?.cellWasPressed()
    }
 protocol CellDelegate {
    func cellWasPressed()
 }

 extension UIResponder {
    func next<T: UIResponder>(_ type: T.Type) -> T? {
        return next as? T ?? next?.next(type)
    }
 }

 extension UITableViewCell {

    var TableView: UITableView? {
        return next(UITableView.self)
    }

    var indexPath: IndexPath? {
        return TableView?.indexPath(for: self)
    }
 }

и вот код для подготовки к переходу в BrowseViewController:

 func cellWasPressed() {
        if let index = selectedIndex{
            self.performSegue(withIdentifier: "ViewEventDetails", sender: index)
        }
    }
 override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
   if(segue.identifier == "ViewEventDetails") {
            let destination = segue.destination as? EventDetailViewController
            if let index = sender as? IndexPath {

                if let index2 = selectedIndex2 {
                    let cell = EventTable.cellForRow(at: index2) as! PopularCell
                    let events = groupedEventArray[index2.row].1
                    let eventToPass = events[index.row]
                    destination?.navigationItem.title = eventToPass.event_name
                }

            }
        }
 }

Я хочу исправить этот код в другом, чтобы он передавал данные события в пункт назначения ViewController через segue.

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