2010-11-08 6 views
1

Dans une application de barre d'onglets avec un UIWebView pour chaque onglet, je veux afficher un écran de chargement qui est affiché dans webViewDidStartLoad puis caché dans webViewDidFinishLoad. À l'heure actuelle, j'ai un UIView dans chaque fichier nib, mais je me demandais ce qui pourrait être une meilleure façon de réutiliser un seul UIView.Comment réutiliser le même UIView parmi différents onglets?

Merci!

+0

Le but du UITabBarController est de gérer plusieurs points de vue. http://developer.apple.com/library/ios/documentation/userexperience/conceptual/mobilehig/SpecialViews/SpecialViews.html#//apple_ref/doc/uid/TP40006556-CH10-SW13 –

+0

Je ne pense pas que vous le feriez gagner beaucoup en réutilisant une petite vue (à moins que ce soit une vue de chargement en plein écran). –

+0

Daniel, chaque "vue de chargement" a un indicateur d'activité et du texte, et si le chargement échoue un bouton pour rafraîchir. Ainsi, il serait pratique de réutiliser le même si possible. – phi

Répondre

2

C'est une possibilité.

Si vous voulez faire cela, vous devez jouer avec la fenêtre et pourquoi pas déléguer votre application. Il suffit d'ajouter une vue de chargement en tant qu'attribut de délégué d'application. Et puis créer deux fonctions dans le appDelegate

-(void)startLoading 
{ 
[self.loadingView removeFromSuperview]; 
} 

et

-(void)stopLoading 
{ 
[[UIApplication sharedApplication].keyWindow addSubview:self.loadingView]; 
} 

Et voilà! Invoquez simplement les méthodes quand vous en avez besoin.

par exemple:

[((AppDelegateClassName *)[UIApplication sharedApplication].delegate) startLoading];