Lors de l'utilisation du délégué [[UIApplication sharedApplication]]
Je ne sais pas quand ou pourquoi je devrais utiliser [[UIApplication sharedApplication] delegate]
- Je utiliser délégué lorsque [self.navigationController pushViewController:myView Animation:YES]
ne pas naviguer. Je fais MyView *delegate = [[UIApplication sharedApplication] delegate]
et [delegate pushViewController:myView Animation:YES]
pour rendre la navigation fonctionne correctement.
Je ne sais pas si la solution est correcte et en plus je ne sais pas qu'est-ce que l'utilisation de [[UIApplication sharedApplication] delegate]
ou quels sont ses effets sur la demande.
Quelqu'un peut m'aider?
Merci!!
source d'informationauteur rasputin | 2010-11-25
Vous devez vous connecter pour publier un commentaire.
[[UIApplication sharedApplication] delegate]
vous donnera un pointeur vers votre délégué d'application. celui qui a été créé automatiquement lorsque vous avez fait le projet. Habituellement, il est nomméYourAppNameAppDelegate
.deux choses sont un peu de mal avec votre code.
lorsque vous déclarez
MyView *delegate
cela devrait êtreid delegate
ouYourAppNameAppDelegate *delegate
.Vous ne devriez pas avoir à accéder à votre navigationController par le délégué d'application. Je veux le regarder dans pourquoi l'auto.navigationController est un échec, et adresse. Vous êtes essentiellement en la mise en œuvre d'un pattern singleton lorsque vous comptez sur le délégué d'application. Parce que le pattern singleton est le moins cool de la programmation la conception de modèle, il ne vous gagner des points lorsque l'on parle de la boutique avec les autres programmeurs.
Lorsque vous créez une variable appelée appDelegate dans votre IVars, il ne sera pas seulement de se mettre automatiquement le délégué d'application - vous pouvez définir vous-même. À partir de n'importe où dans votre application, vous pouvez accéder à la déléguée par l'application de singleton.
[UIApplication sharedApplication]
<--- donne accès à la singletondélégué méthode retourne un pointeur vers le délégué d'application.
Donc, puisque les variables nécessaires pour être initialisé, logiquement il y a deux endroits à voir, il est dans l'initialiseur, si vous créez un ou une méthode qui est appelée à proximité du début de l'utilisation de la vue et de son contrôleur cet endroit et c'est dans le viewDidLoad.