ce bouton est lié vers un autre controller via storyboard segue (sur lequel je ne fais pas passer de data)
Mon problème : lorsque la table est vide (uniquement) et lorsque j'appuie sur cet UIBarButtonItem l'appli plante avec le message d'erreur suivant :
*** Terminating app due to uncaught exception 'NSRangeException', reason: '*** -[__NSArrayM objectAtIndex:]: index 0 beyond bounds for empty array'
Lorsque sur la table apparait au moins 1 cellule, il n'y a plus de crash. Je pense que ce problème est lié au fait d'avoir intégré une cellule au moyen d'une autre class (avant de le faire je n'avais pas ce problème). Cependant je ne vois pas comment le résoudre... auriez-vous une idée ?
Je viens de relire ce message.
Tu dis que tu as "intégré" un UIBarButtonItem dans le UITableView...
Tu dis que tu as "intégré" un UIBarButtonItem dans le UITableView...
Pourquoi ? et comment ?
Sur mon storyboard j'ai juste placé un Bar Button Item (sur un Navigation item) que j'ai ensuite relié à un navigation controller (lui-même relié à un autre VC)
Lorsque la table est vide aucun Bar button item ne fonctionne et j'ai le message d'erreur mentionné plus haut.
Lorsque sur la table apparaà®t au moins une cellule (donc alimentée par de la data) les Bar button fonctionnent.
Je vois sur stackoverflow que je ne suis pas le seul à avoir rencontré ce genre d'erreur, par exemple ici
la solution se trouve certainement dans cette réponse "You array is empty, but you're trying to access an object in it. That is the problem " mais pour le moment avec mon propre code je n'arrive pas à trouver de solution satisfaisante...
Sur mon storyboard j'ai juste placé un Bar Button Item (sur un Navigation item) que j'ai ensuite relié à un navigation controller (lui-même relié à un autre VC)
Bah, non !
Avant de discuter le problème de l'index :
Tu ne veux pas poser le UINavigationItem comme ça. D'abord, sans avoir mettre le tableViewController dans un UINavigationController, ce que tu as fait, c'est de le mettre dans le tableViewController, pas le tableView.
Tu dois commencer avec un UINavigationController, avec ton viewController là dedans. Puis, tu peux mettre le UIBarButtonItem dans le UINavigationBar qui est fourni.
Après tu l'as fait, tu peux mettre un deuxième viewController sur le storyboard et, là , tu peux relier le bouton à ce deuxième viewController.
Tu dois commencer avec un UINavigationController, avec ton viewController là dedans. Puis, tu peux mettre le UIBarButtonItem dans le UINavigationBar qui est fourni.
Après tu l'as fait, tu peux mettre un deuxième viewController sur le storyboard et, là , tu peux relier le bouton à ce deuxième viewController.
Oui sorry je me suis mal exprimé c'est exactement ce que j'ai fait, donc pour le moment ma construction semble correcte. Le UIBarButtonItem fonctionnait parfaitement avant que j'intègre la cellule "TimeLineCell". Il y a sans doute un problème avec l'index ...
Réponses
Je récupère les objets comme ceci :
La table
configuration de la cellule:
La cellule associée
.h
.m
J'utilise le SDK de Parse pour construire ma table qui est une "PFQueryTableViewController "
la data prend sa source au moyen d'une requête (voir ci-dessous) il ne reste ensuite qu'à configurer la cellule
Je répète : Tu n'as pas montré les méthodes de UITableViewDataSource
Joanna je ne suis pas sûr de ce que tu veux voir exactement,
Ce n'est pas une UITableView classique, la class reference est ici :
https://parseplatform.github.io/Parse-SDK-iOS-OSX/api/Classes/PFQueryTableViewController.html
les méthodes de UITableViewDataSource doivent être celles ci-dessous,
a priori je n'ai rien d'autre (?)
Je viens de relire ce message.
Tu dis que tu as "intégré" un UIBarButtonItem dans le UITableView...
Pourquoi ? et comment ?
Sur mon storyboard j'ai juste placé un Bar Button Item (sur un Navigation item) que j'ai ensuite relié à un navigation controller (lui-même relié à un autre VC)
Lorsque la table est vide aucun Bar button item ne fonctionne et j'ai le message d'erreur mentionné plus haut.
Lorsque sur la table apparaà®t au moins une cellule (donc alimentée par de la data) les Bar button fonctionnent.
Je vois sur stackoverflow que je ne suis pas le seul à avoir rencontré ce genre d'erreur, par exemple ici
http://stackoverflow.com/questions/23423473/nsrangeexception-reason-nsarraym-objectatindex-index-5-beyond-bou
la solution se trouve certainement dans cette réponse "You array is empty, but you're trying to access an object in it. That is the problem " mais pour le moment avec mon propre code je n'arrive pas à trouver de solution satisfaisante...
Bah, non !
Avant de discuter le problème de l'index :
Tu ne veux pas poser le UINavigationItem comme ça. D'abord, sans avoir mettre le tableViewController dans un UINavigationController, ce que tu as fait, c'est de le mettre dans le tableViewController, pas le tableView.
Tu dois commencer avec un UINavigationController, avec ton viewController là dedans. Puis, tu peux mettre le UIBarButtonItem dans le UINavigationBar qui est fourni.
Après tu l'as fait, tu peux mettre un deuxième viewController sur le storyboard et, là , tu peux relier le bouton à ce deuxième viewController.
Oui sorry je me suis mal exprimé c'est exactement ce que j'ai fait, donc pour le moment ma construction semble correcte. Le UIBarButtonItem fonctionnait parfaitement avant que j'intègre la cellule "TimeLineCell". Il y a sans doute un problème avec l'index ...