2010-08-02 5 views
1

J'écris une application iPhone qui se synchronise périodiquement avec le service Web de synchronisation. Tout fonctionne bien, mais malheureusement, après la synchronisation, l'utilisateur ne voit aucun changement dans la vue s'il l'a déjà visité.Actualiser/recharger la vue après la synchronisation sur Internet

J'ai besoin de forcer pour recharger/rafraîchir certaines vues. Comment pourrais-je faire cela avec par exemple la méthode viewWillAppear?

J'ai essayé quelque chose comme ça dans un de mes contrôleurs de vue:

-(void) viewWillAppear:(BOOL)animated 
{ 
     NSArray* sbw = [self.view subviews]; 

     UIView* view; 
     for (view in sbw) 
     { 
      [view setNeedsDisplay]; 
     } 

     [self.view setNeedsDisplay]; 
     [super viewWillAppear]; 

    } 

Mais les sous-vues ne sont pas rafraîchissante. Y a-t-il une méthode pour forcer à recharger/rafraîchir la vue?

Je sais que viewWillAppear est exécuté lorsque je passe à cette vue mais qu'elle n'est pas rafraîchissante - alors comment puis-je faire cela?

Répondre

1

dans les vues de table que vous pouvez utiliser: [tableView reloadData]; pour recharger un contenu de tables. Si vous souhaitez simplement mettre à jour le contenu des vues, vous pouvez simplement le modifier. Disons que si vous avez une classe de vue et une classe de contrôleur MyUIView et MyUIViewController et MyUIView ne contient un UILabel * myLabel vous pouvez modifier le texte de l'étiquette à l'intérieur du contrôleur par:

[((MyUIView *)self.view).myLabel setText:@"This is a new text."]; 

donc pas besoin de forcer la mise à jour.

1

Vous pouvez écrire la méthode "viewWillAppear" dans laquelle vous pouvez écrire votre code à recharger qui peut prendre les données de votre base de données. Cette méthode sera exécutée dès que la vue commencera à charger.

Questions connexes