试图将数据从我的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.
}
}
答案 0 :(得分:0)
好的,我想出了解决方案。解决方法是我删除didSelectItemAt并改用didHighlightItemAt方法。这样,我可以将所选collectionviewCell的数据传递给viewcontroller。我发现uiviewcontroller的viewdidload方法仅在didHighlightItemAt之后和didSelectItemAt方法之前被调用的原因。