ios - 如何从 UICollectionViewCell 中的 UITableViewCell 内部推送 View ?

标签 ios swift uitableview uinavigationcontroller

我有一个UITableView UICollectionViewCell 里面我正在尝试从 UITableViewCell 推出新的 View tableView(_:didSelectRowAt:)里面方法。但是,我无法访问 navigationController 。我将如何导航到新 View ?

func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
    var item = Item(name: "")

    switch indexPath.section {
    case 0:
        item = array1![indexPath.item]
    case 1:
        item = array2![indexPath.item]
    default:
        break
    }

    let layout = UICollectionViewFlowLayout()
    let newView = NewCollectionView(collectionViewLayout: layout)
    newView.itemOfInterest = item

    // Can't reference navigationController
}

最佳答案

获取当前 View 的父 Controller -

//MARK: get parent controller...
extension UIView {
    var parentViewController: UIViewController? {
        var parentResponder: UIResponder? = self
        while parentResponder != nil {
            parentResponder = parentResponder!.next
            if let viewController = parentResponder as? UIViewController {
                return viewController
            }
        }
        return nil
    }
}

用法:- 获取 navigationController 引用为 parentViewController?.navigationController

let viewController = GymLearnMoreViewController(nibName: "GymLearnMoreViewController", bundle: nil) //Your View controller instance
parentViewController?.navigationController?.pushViewController(viewController, animated: true)

来源苹果:-

https://developer.apple.com/documentation/uikit/uiresponder/1621099-next https://developer.apple.com/documentation/uikit/uiresponder?changes=_9

关于ios - 如何从 UICollectionViewCell 中的 UITableViewCell 内部推送 View ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51471584/

相关文章:

ios - 添加 UILabels 来查看时 UIScrollView 无法正常工作

ios - 如何在委托(delegate)函数中处理多个 MKOverlays

swift - 私有(private) CocoaPods – [!] 无法添加名为 `` 的 url `-1` 的源

ios - 使用 Firebase 电子邮件验证链接登录

ios - Swift TableView 人口

ios - 如何让生产签名的应用程序从 iOS 上的测试环境获取收据?

适用于特定设备的 iOS 应用

objective-c - 隐藏 JSQMessageViewController 气泡中的链接

ios - 使用 UITableViewAutomaticDimension 时 UITableView 在 begin/endUpdates 之后跳转

ios - TableViewCell 中的 UIButton 调用 2 个函数