2017-10-11 6 views
-2

Je souhaite présenter un contrôleur de vue lorsque je sélectionne une ligne dans une tableView qui se trouve dans un UICollectionViewCell. Je n'ai pas utilisé de storyboard dans mon projet. J'ai essayé d'appeler 'present (viewController, animé: true, completion: nil)' à l'intérieur de 'didSelectRowAt indexPath: ...' mais j'ai une erreur 'SecondPageCollectionViewCell' n'a pas de membre 'présent', j'ai aussi essayé d'effectuer un segment, mais j'ai toujours la même erreur. Comment pourrais-je présenter un autre contrôleur de vue lorsque je tape sur une rangée?UICollectionViewCell 'n'a aucun membre' présent '

class SecondPageCollectionViewCell: UICollectionViewCell,UITableViewDelegate, UITableViewDataSource { 

let viewController = ViewController() 
let tableView = UITableView() 
... 

override func awakeFromNib() { 
... 
} 

func numberOfSections(in tableView: UITableView) -> Int { 
    return 1 
} 

func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { 
     print("selected row \(indexPath.row)") 
} 

func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { 

    return allUsers.descriptions.count 
} 

func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat { 
    return frame.height - secondViewheight 

} 

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { 
    ... 
} 

} 
+0

ViewController est capable de présenter ainsi vous pouvez également essayer de présenter sur la veuve! –

+0

vous pouvez soit utiliser des segues sur le storyboard ou écrire une méthode explicite _did-select-row-at-index-path_ pour présenter un nouveau contenu - littéralement des millions d'exemples sont autour du net. – holex

Répondre

2

Seul un UIViewController peut présenter un autre UIViewController. La meilleure façon de le faire serait d'utiliser un délégué pour dire à votre UIViewController de présenter la nouvelle vue