2009-08-16 8 views
-2

Lorsqu'une table est créée, cellForRowAtIndexPath est appelée pour remplir les cellules. Auparavant, lorsqu'une cellule a été cliqué pour modifier, cellForRowAtIndexPath n'a pas été appelé, et la cellule aurait du texte tapé dans l'aide:cellForRowAtIndexPath appelé lorsque la cellule du tableau est cliquée pour modifier

#pragma mark Text Field Delegate Methods 
- (void)textFieldDidBeginEditing:(UITextField *)textField 
{ 
self.textFieldBeingEdited = textField; 
} 

Maintenant, quand je clique sur les cellules qui sont en dessous de la cellule avec la ligne = 4, qui est où le haut du clavier est, cellForRowAtIndexPath est appelée avec une ligne supérieure au nombre total de lignes provoquant un plantage. Lorsque je clique sur les cellules 0 à 4, je peux éditer les cellules et cellForRowAtIndexPath n'est pas appelé. cellForRowAtIndexPath n'a pas été appelé précédemment pour cliquer sur l'une des cellules. J'ai changé quelque chose qui cause cela, mais je n'arrive pas à comprendre ce que c'est.

Est-ce que quelqu'un sait ce qui peut provoquer l'appel de cellForRowAtIndexPath en cliquant sur une cellule pour l'éditer? Il semble presque qu'il pense qu'une nouvelle table est en train d'être créée.

+0

Chaque cellule contient un TextField. Si je désactive les TextFields dans les cellules avec la ligne> 4, avec textField.enabled = NO; puis cellForRowAtIndexPath n'est pas appelé lorsque je tape sur la cellule. Étrange. –

Répondre

1

J'ai trouvé quel était le problème. J'avais spécifié une rangée de plus dans la table qu'il n'y en avait réellement.

1

Si vous avez cette ligne:

[myTable reloadData]; 

Partout dans le code, il appellera cellForRowAtIndexPath à nouveau.

Questions connexes