2010-08-16 7 views
0

J'ai donc deux vues, les premières ont mon TableView et les secondes ont mon TextField et je veux ajouter une ligne dans mon TableView avec le texte dans mon TextField.Ajouter une ligne dans un TableView

Pour le moment, je peux juste ajouter une ligne avec

[myTableView addObject:@"Test 1"]; 
[myTableView addObject:@"Test 2"]; 
[myTableView addObject:@"Test 3"]; 

Merci pour votre aide!

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{ 

static NSString *CellIdentifier = @"Cell"; 

UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier]; 
if (cell == nil) 
{ 
    cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease]; 
} 

NSString *cellValue = [myTableView objectAtIndex:indexPath.row]; 
cell.textLabel.text = cellValue; 

return cell; 

}

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { 

return [myTableView count]; 

}

Répondre

1

Je ne sais pas exactement ce que votre question est ici, mais je pense que ce sera beaucoup plus clair si vous nous montrez de votre vue tableau délégué -tableView:numberOfRowsInSection: et -tableView:cellForRowAtIndexPath: méthodes Ce sont les points clés où vous allez apporter des modifications au comportement de votre vue de table, et c'est là que votre réponse est susceptible de commencer.


OK. C'est un peu déroutant - il ressemble à myTableView est un NSArray? Normalement une variable avec un tel nom devrait être un pointeur vers une vue de table. Mais UITableView n'a ni une méthode -addObject: ni une méthode -count.

Si c'est le cas, il semble que vous êtes bon (bien que je pense vraiment que vous devriez renommer ce tableau). Vous devez appeler l'une des méthodes -reload* sur votre UITableView pour lui faire savoir que les données ont été modifiées. Le plus simple est

[ptrToTableView reloadData]; 

mais avec un peu plus de travail, vous pouvez obtenir des résultats avec colombophile -reloadSections:withRowAnimation:.

Si cela ne répond pas à la question, je ne sais pas quelle est la question. :)

+0

okok j'ai ajouté mon code – Alex

+0

okok merci, mais le problème est que mon TextField n'est pas lié à mon Tabl eView alors comment puis-je ajouter une ligne? – Alex

+0

et myTableView est un NSMutableArray – Alex

0

ajouter au fichier de votre tête le UITextFieldDelegate devrait aimer maintenant à:

@interface yourViewController : UIViewController <UITableViewDelegate,UITableViewDataSource,UITextFieldDelegate> { 

Ce que nous faisons est tout simplement que nous faisons votre ViewController reconnaître les actions qui sont exécutées avec votre TextField, en utilisant le délégué . Pour dire la textField, dont le délégué est, vous devez écrire par exemple dans la viewDidLoad méthode de votre ViewController:

- (void) viewDidLoad 
{ 
    [super viewDidLoad]; 
    textField.delegate = self; 
} 

Nous devons donc mettre en œuvre la fonction, que si l'utilisateur se fait avec l'édition , le nouveau texte est ajouté:

#pragma mark - 
#pragma mark UITextFieldDelegate Methods 

- (void) textFieldDidEndEditing:(UITextField *)textField 
{ 
    [myTableView addObject:textField.text]; 
    [myTableView reloadData]; 
    textField.text = @""; 
} 

d'autres méthodes du délégué sont énumérés ci-dessous: http://developer.apple.com/library/ios/#documentation/uikit/reference/UITextFieldDelegate_Protocol/UITextFieldDelegate/UITextFieldDelegate.html

Questions connexes