尝试在已经呈现的VC上呈现VC(空)

时间:2018-07-30 05:04:34

标签: ios swift uicollectionview segue uigesturerecognizer

我有一个UICollectionView,我要向每个UIGestureRecognizer添加一个UICollectionViewCell

在点击时,我正在执行 segue ,并显示另一个UIViewController。当我点击时,它会出现,选择器函数会被多次调用,这就是记录以下警告的原因:

  

警告:尝试在已经显示的VC上显示VC(空)

  1. 我在故事板中有一个 segue标识符,用于连接两个 VC
  2. 我没有使用didSelectCell / didDeSelectCell委托方法
  3. 仅在cellForItemAt委托方法中添加手势

我确实对引发多重调用的根本原因不知所措,并且希望得到任何帮助,因为我找不到与SO中的参考直接相似的东西。

不确定使用重复使用的单元格是否需要做任何事情?

    func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {

    let cell = collectionView.dequeueReusableCell(withReuseIdentifier: reuseIdentifier, for: indexPath as IndexPath) as! collectionViewCell

    tap = UITapGestureRecognizer(target: self, action: #selector(onTap))
    tap.delegate = self
    cell.addGestureRecognizer(tap)

    return cell
}

    @objc func onTap(_ sender: UITapGestureRecognizer) {

        homeCollectionView.isScrollEnabled = true
        self.performSegue(withIdentifier: "segueId", sender: sender)        
}

    override func prepare(for segue: UIStoryboardSegue, sender: Any?) {

    if let presentedVC = segue.destination as? viewController, let sender = sender as? UITapGestureRecognizer, let cell = sender.view as? collectionViewCell {
       //Data passed
    }
}

0 个答案:

没有答案