点击UITableViewCell里的CollectionViewCell进行跳转

img
结构如图所示,目的是要通过点击嵌在UITableViewCell里的UICollectionViewCell来进行跳转。

但是UITableViewCell不是个controller,所以UICollectionViewCell点不出来页面跳转的方法。

我的解决办法是获取UITableViewCell所在的controller,然后通过该controller进行页面跳转


1、获取所在的最上层的controller

// MARK: - 查找所在的ViewController
    func responderViewController() -> UIViewController? {
        for view in sequence(first: self.superview, next: {$0?.superview}) {
            if let responder = view?.next {
                if responder.isKind(of: UIViewController.self) {
                    return responder as? UIViewController
                }
            }
        }
        return nil
    }

2、点击跳转处理方法

func Tap(_ recognizer:UITapGestureRecognizer) {
        // MARK: - secondVC是目标页面
        let secondVC = ImagePreviewViewController(images: pictures, index: index)
        // MARK: - firstVC是所在页面
        let firstVC = self.responderViewController()
        firstVC?.present(secondVC, animated: true, completion: nil)
}

3、在这个UICollectionViewCell所在的UICollectionView代理方法里添加点击,我用的是tap手势点击监听

let tapSingle = UITapGestureRecognizer(target: self, action: #selector(Tap(_:)))
        tapSingle.numberOfTapsRequired = 1
        tapSingle.numberOfTouchesRequired = 1
        cell.imageView.addGestureRecognizer(tapSingle)

如有问题,欢迎斧正~

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值