ios - 如何执行从 UIView 到 ViewController 的导航

标签 ios swift uiview uinavigationcontroller

在我的主屏幕中有多个 UICollectionView 部分,因此我为每个部分(UICollectionViews)使用单独的 - 单独的 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)?

然后在collectionViewdidSelectItem委托(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/

相关文章:

ios - 如何从 GitHub 拉取请求安装 cordova 插件?

ios - 在 xCode 中导入用 <> 符号包围的 .h 文件?

objective-c - Objective-C 选择器参数的 Swift 默认值

ios - 如何为包含 JSON 数组的 API 端点创建 Siesta 转换器?

swift - 快速处理段落

ios - 以编程方式更改 Storyboard 上 UIView 的大小

iOS 7 uitextview NSLineBreakByWordWrapping 不工作

ios - OpenAL 只适用于 caff 格式的音频文件吗

iphone - dismissModalViewControllerAnimated 不适用于 XIB

Objective-c PDF 渲染