web-dev-qa-db-fra.com

Swift: TableView dans ViewController

J'ai un ViewController dans le MainstoryBoard. J'y ai ajouté le TableView.

MainStoryBoard:

enter image description here

De plus, j'ai un tableau en dehors de la classe ViewController et je veux que les objets à l'intérieur du tableau soient affichés dans le TableView.

Je ne sais pas comment faire. J'ai connecté le délégué entre le TableView et le ViewController.

27
Eliko

Vous ajoutez une nouvelle variable d'instance de vue de table sous la déclaration de classe.

@IBOutlet weak var tableView: UITableView!

Pour se conformer aux protocoles UITableViewDelegate et UITableViewDataSource, ajoutez-les simplement séparés par des virgules après UIViewController dans la déclaration de classe

Après cela, nous devons implémenter les méthodes tableView(_:numberOfRowsInSection:), tableView(_:cellForRowAtIndexPath:) et tableView(_:didSelectRowAtIndexPath:) dans la classe ViewController et les laisser vides pour l'instant

class ViewController: UIViewController, UITableViewDelegate, UITableViewDataSource {
    ...

    func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        return 0 // your number of cells here
    }

    func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
        // your cell coding 
        return UITableViewCell()
    }

    func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
        // cell selected code here
    }
}

Comme mentionné par @ErikP dans les commentaires, vous devez également définir self.tableView.delgate = self Et self.tableView.dataSource = self Dans la méthode viewDidLoad (ou dans Storyboard fonctionne bien aussi).

49
Dharmesh Dhorajiya

je suis peut-être en retard et vous avez peut-être résolu ce problème maintenant. L'erreur que vous obtenez est due à votre variable ou constante renvoyant une valeur nulle. pour tester cela, vous pouvez lui attribuer une valeur (coder en dur) et vérifier le code complet s'il fonctionne, puis le modifier dans votre tableau, malheureusement, je fais des choses par programmation et pas très familier avec le storyboard.

si vous partagez votre code, nous vous assisterons s'il n'est pas encore trié.

1
Fullpower