在我的主屏幕中有多个 UICollectionView
部分,因此我为每个部分(UICollectionView
s)使用单独的 - 单独的 View (xib
)现在我必须执行导航(didSelectItemAt
),即使没有错误,我也无法执行它
我使用以下代码进行导航(didSelectItemAt
)
func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) {
let vc = UIStoryboard.init(name: "ProductListing", bundle: Bundle.main).instantiateViewController(withIdentifier: "ProductListingViewController") as? ProductListingViewController
(superview?.next as? ProductListingViewController)?.navigationController?.pushViewController(vc!, animated: true)}
最佳答案
您可以为此使用回调
。
在您的collectionView View
中添加此回调:
var didSelectCallback: (() -> Void)?
然后在collectionView
的didSelectItem
委托(delegate)方法中写入:
if let callBack = didSelectCallback {
callBack()
}
然后在 Controller 中添加此 collectionView View
时添加此回调:
yourView.didSelectCallback = { [weak self] in
guard let weakSelf = self else {return}
let vc = UIStoryboard.init(name: "ProductListing", bundle: Bundle.main).instantiateViewController(withIdentifier: "ProductListingViewController") as? ProductListingViewController
weakSelf.navigationController?.pushViewController(vc!, animated: true)}
}
关于ios - 如何执行从 UIView 到 ViewController 的导航,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52848611/