0
votes

Objectif C - UitailView Navette de montrer les données à l'écran

J'ai une gamme de données. Et WR mes données ne figurent pas à l'écran. Pas sûr, ce que je manque.

@property NSMutableArray *NotifTotal;

@interface HomeVC ()<UITableViewDelegate, UITableViewDataSource>
@end

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
    return 1;
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
    return [self.NotifTotal count];
}

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:
(NSIndexPath *)indexPath {
    static NSString *CellIdentifier = @"FilterTableViewCell";
    FilterTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];


    NSDictionary *dict;
    dict = [self.NotifTotal objectAtIndex:indexPath.row];
    NSLog(@"%@", dict);  // data is coming.
    NSString* salt = [dict objectForKey:@"salt"];
    NSString* name = [dict objectForKey:@"Name"];
    NSLog(@"%@%@", name,swerk); // in console i can print the data
    cell.sLabel.text = [NSString stringWithFormat: @"%@", salt];
    cell.nLabel.text = [NSString stringWithFormat: @"%@", name];
    return cell;
}


3 commentaires

Avez-vous lié les délégués et la source de données correctement? Pls revérifier.


Oui, j'ai fait pour la vue table


Je suppose que le tableau est vide ou nul. Un test simple serait nslog (@ "compte est% d", auto-iftotal.count); in numérosofrows et nslog (@ "% @", indéniables); in cellxfornatindexpath. Vous devriez voir un compte> 0 et autant de chemins d'index comme des cellules visibles.


3 Réponses :


0
votes

Étant donné que vous n'avez pas mentionné après avoir enregistré l'identifiant de la cellule, je suppose que c'est le problème. Une façon de le faire est dans votre storyboard ou XIB. Sélectionnez la cellule prototype dans votre TableView et définissez le champ "Identificateur" (dans le volet d'inspecteur des attributs du constructeur d'interface). Définissez-le sur "FilterTableViewCell".

 Champ d'identifiant pour une cellule prototype


2 commentaires

J'ai déjà ça. J'ai déjà mentionné cela. Depuis que je peux voir la vue table, avec la couleur de la cellule BG. Mais pas capable de voir les données Onl


@David Vérifiez que Slabel et Nlabel ne sont pas nuls, lors de la TableView: CellfroworTindexpath :. De plus, vous n'avez pas montré le code où vous avez peuplé notibotal. Vérifiez les cordes que vous définissez Slabel et Nlabel sont ce que vous attendez.



1
votes

Vous avez dit "J'ai ajouté le délégué, la source de données également à mon écran" mais il n'est pas très clair pour moi par le fait que vous vouliez dire conforme à votre homevc à utableviewelegate et UitablesViewAsource Comme votre code posté ou que vous définissez réellement le délégué de votre UitailView sur homevc . Alors voici quelque chose que vous devriez vérifier:

  • Définissez DataSource de votre UitailView to homevc à l'aide du constructeur d'interface ou du code suivant: XXX

  • Assurez-vous que [Self.noItBetTal compte]> 0 .

  • Assurez-vous qu'il ne s'agit pas du problème de configuration de l'utableview en ajoutant un point de pause à CellfrowrotindexPath et confirmez-le appelé.

    • Si ce n'est pas le cas: Retournez à 2 points ci-dessus.
    • Si c'est le cas: il s'agit d'un problème d'interface utilisateur, vérifiez si la hauteur de votre cellule est proche de 0 ou a une couleur transparente et ainsi de suite. Vous pouvez utiliser l'outil de débogage de la vue Xcode pour déboguer le problème.

2 commentaires

J'ai imprimé comme cell.textlabel.text = @ "Data"; . Maintenant son impression.


Vous voulez dire que lorsque vous définissez cell.textlable.text = @ "Data"; , il apparaît sur votre écran? Si oui, vérifions si slabel et nlabel est nul. - S'ils sont nuls: assurez-vous que ces variables sont connectées aux étiquettes de votre cellule via Iboutlet. - S'ils ne sont pas nuls: déboguer leur cadre après la charge de la cellule entièrement chargée, assurez-vous que leur position est viable à l'écran.



0
votes

Ceci ressemble à un problème XIB. J'ai ajouté un peu de code au milieu.

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
static NSString *CellIdentifier = @"FilterTableViewCell";
FilterTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];

//Add this part
if (cell == nil)
{
    NSArray *nib = [[NSBundle mainBundle] loadNibNamed:@"FilterTableViewCell" owner:self options:nil];
    cell = [nib objectAtIndex:0];
}
//end


NSDictionary *dict;
dict = [self.NotifTotal objectAtIndex:indexPath.row];
NSLog(@"%@", dict);  // data is coming.
NSString* salt = [dict objectForKey:@"salt"];
NSString* name = [dict objectForKey:@"Name"];
NSLog(@"%@%@", name,swerk); // in console i can print the data
cell.sLabel.text = [NSString stringWithFormat: @"%@", salt];
cell.nLabel.text = [NSString stringWithFormat: @"%@", name];
return cell;
}


0 commentaires