swift - 试图将数据从 UICollectionViewCell 传递到 UIViewController

标签 swift uiviewcontroller uicollectionview

尝试将数据从我的 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/

相关文章:

ios - 更改工具栏颜色

arrays - Swift-如何动态创建标签

json - 在 Swift 的 TableView 中按字母顺序显示来自 JSON 的数据

ios - 单击公开指示器按钮后如何转到第二个 View Controller

ios - 如何知道 viewController 是否已经访问过?

iOS 11 beta UICollectionViewCell 在接近顶栏时使用 contentInsetAdjustmentBehavior 调整大小

ios - 调整 UICollectionViewCells 的大小以始终填充 UICollectionView

ios - 如何使用 Collection View 创建 2 x 2 网格布局?

regex - 如何在 rahul.123@clicksabcd.com 的电子邮件文本字段中使用正则表达式?

ios - 为什么设备旋转时 self.view.frame 和 self.view.bounds 不同?