1

j'ai un NSMutableArray qui est rempli par l'utilisateur:remplissage tableview avec tableau mutable

NSString *_string = _text.text; 
[_array addObject:_string]; 
[self saveIt]; 
_text.text = @""; 

_TEXT est un champ de texte, _array est un NSMutableArray

alors j'ai une méthode qui sauve la chaîne dans les NSUserDefaults:

-(void)saveIt { 

NSUserDefaults *tableDefaults = [NSUserDefaults standardUserDefaults]; 
[tableDefaults setObject:_array forKey:@"key"]; 

}

bien

, comment puis-je afficher sauvés tableau dans la tableview lorsque l'application est ouverte à nouveau?

merci :)

Répondre

2

Vous chargez le tableau arrière de NSUserDefaults, et utiliser le contenu du tableau pour renvoyer les valeurs appropriées des différentes méthodes de data source de la vue table, notamment tableView:numberOfRowsInSection: et tableView:cellForRowAtIndexPath:.


Exemple rapide:

D'abord, lire le tableau arrière de NSUserDefaults à un moment donné, probablement dans init de votre classe ou dans application:didFinishLaunchingWithOptions: (après avoir appelé registerDefaults: de NSUserDefaults, bien sûr):

_array = [[NSMutableArray arrayWithArray:[[NSUserDefaults standardUserDefaults] arrayForKey:@"key"]] retain]; 

utiliser ensuite pour les méthodes mentionnées:

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { 
    return _array.count; 
} 

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { 
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"cell"]; 
    if (!cell) { 
     cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"cell"] autorelease]; 
    } 
    cell.textLabel.text = [_array objectAtIndex:indexPath.row]; 
    return cell; 
} 

Cela devrait vous aider à démarrer. Vous aurez probablement aussi besoin d'appeler reloadData ou insertRowsAtIndexPaths:withRowAnimation: sur votre vue de table lors de l'ajout de quelque chose à la matrice, voir the documentation pour plus de détails.

+0

pouvez-vous me donner un exemple s'il vous plaît? :) – Leon

+0

@Leon: Voilà. – Anomie

Questions connexes