2017-03-18 1 views
2

Je suis un développeur android et j'ai récemment commencé à apprendre Swift. Je fais face à un problème que je suis incapable d'attribuer une classe personnalisée à UITableView dans le UIStoryboard. Quand j'écris le nom de la classe et que j'appuie sur enter, iMac émet un bip. Je suis resté à ce problème des heures de forme. Quelqu'un peut-il me guider ici?Comment attribuer une classe personnalisée à TableViewController

enter image description here

Voici la classe

import Foundation 
import UIKit 
class MemeTableViewController: UIViewController,UITableViewDataSource,UITableViewDelegate { 

    var memes : [Meme]! 

    override func viewWillAppear(_ animated: Bool) { 
     super.viewWillAppear(animated) 

     let appDelegate = UIApplication.shared.delegate as! AppDelegate 
     memes = appDelegate.meme 
    } 

    func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { 
     return memes.count 
    } 

    func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { 
     let cell = tableView.dequeueReusableCell(withIdentifier: "tablecell")! 
     let meme = memes[(indexPath as NSIndexPath).row] 
     cell.imageView?.image = meme.memeImage 
     cell.textLabel?.text = "\(meme.topText)....\(meme.bottomText)" 
     return cell 
    } 

    func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { 
     let controller = self.storyboard?.instantiateViewController(withIdentifier: "MemeDetailViewer") as! MemeDetailViewer 
     let meme = memes[(indexPath as NSIndexPath).row] 
     controller.memeImage = meme.memeImage 
    } 
} 

Merci!

+0

Votre classe doit également être sous classe de UITableViewController! que vous affectez à UITableViewController. –

+0

alors je n'ai pas besoin de '' '' UITableViewDataSource''' et '' 'UITableViewDelegate''' si j'utilise' '' UITableViewController'''? –

+0

Oui à coup sûr, vous n'en avez pas besoin du tout! Vous pouvez directement utiliser les fonctions Delegate. –

Répondre

2

Avant de donner le nom de classe dans votre UIStoryboard alors, votre classe devrait être la sous-classe de ce contrôleur comme ici: UITableViewController Et ce que vous assignez est une sous-classe de UIViewController.