尝试将数据从我的 collectionViewCell
传递到另一个 UIViewController
但由于某种原因数据未传递。下面是我在 didSelectItem
方法中的代码和我要将数据传递到的 ViewController
。我试图用从我的 Collection View 单元格数据传递过来的文本填充标签,但它始终显示我在 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.
}
}
最佳答案
好的,我找到了解决方案。解决方法是我删除了 didSelectItemAt 并改为使用 didHighlightItemAt 方法。这样我就可以将所选 collectionviewCell 的数据传递给 viewcontroller。我发现 uiviewcontroller 的 viewdidload 方法仅在 didHighlightItemAt 之后和 didSelectItemAt 方法之前被调用的原因。
关于swift - 试图将数据从 UICollectionViewCell 传递到 UIViewController,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51177720/