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
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!
Votre classe doit également être sous classe de UITableViewController! que vous affectez à UITableViewController. –
alors je n'ai pas besoin de '' '' UITableViewDataSource''' et '' 'UITableViewDelegate''' si j'utilise' '' UITableViewController'''? –
Oui à coup sûr, vous n'en avez pas besoin du tout! Vous pouvez directement utiliser les fonctions Delegate. –