2010-12-19 1 views
1

J'essaie d'utiliser le MBProgressHUD trouvé ici mais j'ai un problème.Afficher en tant que paramètre, mais l'initialiseur de vue est nul

Je veux pouvoir montrer l'indicateur de progression UIView lorsqu'un nouveau UIViewController est chargé

- (void)viewDidLoad { 
    HUD = [[MBProgressHUD alloc] initWithView:self.view.window]; 
} 

Le problème est que la vue n'est pas encore et retourne initialiser une exception.

Comment puis-je surmonter cela?

Teo

Répondre

0

Mec vous ne voulez jamais d'écrire du code comme ceci:

self.view.window //In iOS projects, *window* is such a holy thing that only the *AppDelegate is responsible to handle 

Dans le code échantillon officiel de MBProgressHUD, ils codent cette façon:

mbProgressHUD = [[MBProgressHUD alloc] initWithView:self.view]; 
+0

Honnêtement, je ne sais pas. Merci pour ça. Peut-être un sujet hors sujet, mais si mon UIViewController a une vue de table et que le ProgressHUD apparaît, jusqu'à ce qu'il se termine, il défilera vers le haut et vers le bas avec la vue de table. Peut-on le faire avec MBProgressHUD ou est-ce qu'une autre approche est requise? – teo

+0

Je n'ai aucune expérience dans le fait de faire défiler tableViews par eux-mêmes. Mais si vous voulez simplement utiliser cet effet pour dire à l'utilisateur que * les données ne sont pas prêtes, veuillez patienter *, je vous suggère d'utiliser l'effet d'animation de MBProgressHUD à la place. C'est beaucoup plus naturel et plus facile à reconnaître et à comprendre. –

+0

Oui, je veux dire que si l'utilisateur parcourt intentionnellement la table vide, il va défiler un peu vers le haut et vers le bas. Pas beaucoup de mal fait, mais je l'ai vu dans d'autres applications ont été fixés à la position. – teo

Questions connexes