Попытка передать данные из UICollectionViewCell в UIViewController - PullRequest
0 голосов
/ 04 июля 2018

Попытка передать данные из моего collectionViewCell другому UIViewController, но по какой-то причине данные не передаются. Ниже мой код в методе didSelectItem и ViewController, в который я хочу передать данные. Я пытаюсь заполнить метку текстом, переданным из данных ячейки моего вида коллекции, но она всегда показывает строку по умолчанию «test», которую я назначил в моем UIViewController. Использование swift 4.1

func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) {
        let destinationVC = storyboard?.instantiateViewController(withIdentifier: "CaseDetailViewController") as! CaseDetailViewController
        destinationVC.textPassedOver = MyCases[indexPath.section][indexPath.item]
        self.navigationController?.pushViewController(destinationVC, animated: true)
    }



// ViewController to pass data


class CaseDetailViewController: UIViewController {

    var textPassedOver = "test"

    @IBOutlet weak var label: UILabel!
    override func viewDidLoad() {
        super.viewDidLoad()
        label.text = textPassedOver

        print(textPassedOver)
       }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }

}

1 Ответ

0 голосов
/ 05 июля 2018

Хорошо, я разобрался с решением. Чтобы обойти это, я удалил didSelectItemAt и использовал вместо него метод didHighlightItemAt. Таким образом, я мог передать данные выбранного collectionviewCell в viewcontroller. Причина, по которой я обнаружил, что метод viewdidload uiviewcontroller вызывается только после didHighlightItemAt и перед методом didSelectItemAt.

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