尝试将数据从UICollectionViewCell传递到UIViewController

时间:2018-07-04 16:17:37

标签: swift uiviewcontroller uicollectionview

试图将数据从我的collectionViewCell传递到另一个UIViewController,但是由于某种原因,数据没有传递。以下是我在didSelectItem方法中的代码以及要将数据传递到的ViewController的代码。我正在尝试使用从我的收藏夹视图单元格数据传递过来的文本填充标签,但是它始终显示我在UIViewController中分配的默认字符串“ test”。使用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 :(得分:0)

好的,我想出了解决方案。解决方法是我删除didSelectItemAt并改用didHighlightItemAt方法。这样,我可以将所选collectionviewCell的数据传递给viewcontroller。我发现uiviewcontroller的viewdidload方法仅在didHighlightItemAt之后和didSelectItemAt方法之前被调用的原因。