2011-02-06 7 views
1

J'ai employé ceci: http://blog.leahculver.com/2010/12/iphone-pull-to-refresh.html pour faire la traction pour actualiser la fonction dans mon application. Mais je ne peux pas voir le texte "Tirer vers le bas pour rafraîchir ...", "Libérer pour actualiser ..." et "Chargement ...". Tout ce que j'ai fait est de copier les fichiers dans mon projet, de lier l'infrastructure de QuartzCore et de changer le fichier .h de mon contrôleur de vue pour qu'il soit une sous-classe de PullRefreshTableViewController. Puis j'ai ajouté la méthode d'actualisation.Tirer pour rafraîchir sur l'iphone ne fonctionne pas comme prévu

Il semble que la méthode initWithStyle dans PullRefreshTableViewController n'est jamais exécutée. Mais je devrais être, dans ma tableViewcellForRowAtIndexPath.

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

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

cell.textLabel.text = @"Text"; 

return cell; } 

La méthode initWithStyle du PullRefreshTableViewController.m:

- (id)initWithStyle:(UITableViewStyle)style { 
self = [super initWithStyle:style]; 
if (self != nil) { 
    textPull = [[NSString alloc] initWithString:@"Pull down to refresh..."]; 
    textRelease = [[NSString alloc] initWithString:@"Release to refresh..."]; 
    textLoading = [[NSString alloc] initWithString:@"Loading..."]; 
    NSLog(@"in"); 
} 
NSLog(@"out"); 
return self; } 

Les journaux ne sont jamais imprimées dans la console

Je ne peux vraiment pas voir où est le problème?

+1

Il est impossible de répondre à cette question dans son état actuel. Par exemple, que se passe-t-il lorsque vous essayez de réaliser une build? Quelles erreurs se produisent? –

+0

J'ai fusionné les informations supplémentaires que vous avez fournies en réponse à votre question. À l'avenir, s'il vous plaît, éditez votre question si vous avez besoin de fournir des éclaircissements. –

Répondre

2

eu le même problème. compris que non initWithStyle est appelé à la place initWithCoder est appelé ....

afin de résoudre votre problème d'insertion de code suivant dans votre PullRefreshTableViewController.m et il fonctionne comme un charme

-(id)initWithCoder:(NSCoder *)aDecoder{ 
NSLog(@"initWithCoder"); 
self = [super initWithCoder:aDecoder]; 
if (self != nil) { 
    textPull = [[NSString alloc] initWithString:@"Pull down to refresh..."]; 
    textRelease = [[NSString alloc] initWithString:@"Release to refresh..."]; 
    textLoading = [[NSString alloc] initWithString:@"Loading..."]; 
} 
return self; 
} 

meilleures salutations

0

Si vous cherchez où le texte est défini, il est sur la ligne 43 de la PullRefreshTableViewController.m

Hope this helps (si elle ne fait pas oublier de voter ma réponse vers le haut)

M.

0

Essayez instancier le PullRefreshTableViewController avec:

PullRefreshTableViewController *tableViewController = [[PullRefreshTableViewController alloc] initWithStyle:UITableViewStylePlain];

instanciation de la UITableViewCell utilisant initWithSyle n'aura aucun effet sur votre sous-classe UITableViewController.

L'alternative consiste à modifier la classe PullRefreshTableViewController pour remplacer - (id) Méthode d'initialisation d'une manière similaire à celle effectuée avec initWithStyle:

Questions connexes