2010-10-21 5 views
1

Dans mon application, j'autorise les utilisateurs à ajouter de nouvelles lignes de NSStrings à UITableView. Je sauvegarde ces nouvelles chaînes dans un NSMutableArray * dataArrayComment mettre à jour numberOfRowsInSection en utilisant le compte NSMutableArray

Donc pour numberOfRowsInSection, je retourne [dataArray count], mais il semble juste retourner 0 tout le temps pour que ma table ne soit pas auto-remplie. Si cela aide, quand je fais un NSLog de [dataArray count] comme ajouter plus d'entrées, il reste 0. Pourquoi n'augmente-t-il pas?

Une aide?

+0

Vérifiez si votre DataArray var est créée (pas nul) – Vladimir

Répondre

4

Sans regarder @ votre code, il est impossible de prédire la raison ..

Ensuite, vous pouvez aussi tenter votre HardLuck ... ci-dessous:

d'abord essayer de NSLog votre tableauDonnees pour vérifier wether le dossier est d'ajouter ou non.

C'est son ok ... vous obtenez les enregistrements.

alors il vous manque une chose.

recharger la table .. [tableView reloadData];

Je pense que cela vous aiderait certainement .. autrement, mettez du code ici.

+0

J'ai le même problème, avons-nous besoin de reloadData la vue de la table dans la méthode viewDidLoad? – Harish

+0

@opensourcelover N'est pas nécessaire .. mais vous devez recharger TableView dans lequel Array est rempli d'objets.i.e Une fois les objets ajoutés dans votre tableau, simlpy recharger votre tableview. –

3

Avez-vous initialisé votre baie. Voici comment je l'ai fait - prob un meilleur moyen!

.h:

@interface RootViewController : UITableViewController { 
NSArray *array; 
} 

@property (nonatomic, retain) NSArray *array; 

@end 

.m:

@implementation RootViewController 
@synthesize array; 

- (void)viewDidLoad { 
    [super viewDidLoad]; 

    NSMutableArray *mArry = [[NSMutableArray alloc] init]; 
    [mArry addObject:@"An ObecjT"]; 
    self.array = mArry; 
    [mArry release]; 

} 
// Customize the number of rows in the table view. 
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { 
    return [array count]; 
} 


// Customize the appearance of table view cells. 
- (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]; 
    } 

    // Configure the cell. 
    cell.textLabel.text = [array objectAtIndex:indexPath.row]; 

    return cell; 
} 

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { 
    NSMutableArray *aNewArray = [[NSMutableArray alloc] initWithArray:array]; 
    [aNewArray addObject:@"Your Object"]; 
    self.array = aNewArray; 
    [aNewArray release]; 
    [self.tableView reloadData]; 

} 
- (void)viewDidUnload { 
    self.array = nil; 
} 


- (void)dealloc { 
    [array release]; 
    [super dealloc]; 
} 
1

Avez-vous fixé le délégué pour le UITableView dans Interface Builder? s'il te plaît vérifie le.

Si vous avez ajouté, alors vous devez vérifier avec ce dataArray s'il a des enregistrements ou non.

Questions connexes