Не удается показать viewcontroller из UITableViewCell - PullRequest
1 голос
/ 22 сентября 2019

По сути, у меня есть CollectionView внутри tableviewcell, и вот метод, который я использую для передачи в другой viewcontroller.

Вот код :

class recipeRelated: UITableViewCell,UICollectionViewDelegate,UICollectionViewDataSource {
    func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath)  {       
       let storyBoard : UIStoryboard = UIStoryboard(name: "Main", bundle:nil)
       let resultViewController = storyBoard.instantiateViewController(withIdentifier: "recipeContainerView") as! recipeContainerView
       self.window?.rootViewController?.show(resultViewController,sender: self)
    }
}

Заранее спасибо!

1 Ответ

0 голосов
/ 22 сентября 2019

Используйте это расширение:

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
    }
}

Это даст любому представлению доступ к его первому родительскому контроллеру.Таким образом, вы можете использовать его так:

self.parentViewController?.show(resultViewController, sender: self)
...