Comment puis-je utiliser UIApplicationDelegate dans tout le programme?
-
26-09-2019 - |
Question
Je veux savoir quand la barre d'état change la hauteur en raison par exemple d'un appel téléphonique en cours. Donc, je mets ce qui suit dans mon UIApplicationDelegate:
-(void)application:(UIApplication *)application willChangeStatusBarFrame:(CGRect)newStatusBarFrame {
NSLog(@"yup, got here");
}
et même quand je bascule le sur le simulateur de tout écran d'appel barre d'état dans l'application, le message apparaît dans la console, mais ce que je veux faire est de déplacer un UITextField ou 2 dans une autre classe depuis la double -height barre d'état est un chambouler l'écran en particulier. Je n'ai pas eu de chance avec un redimensionnement automatique sur cet écran.
Alors, ma question est de savoir comment je vais sur le code d'exécution d'un écran et un écran seulement de cette méthode dans le AppDelegate? Il tire dans tous les écrans, mais je ne en ont besoin en un. Idéalement, je voudrais une méthode que dans une classe à feu.
La solution
Le système affichera également une UIApplicationWillChangeStatusBarFrameNotification
en même temps. Demandez à votre vue contrôleur écouter cette notification. Pas besoin de jouer avec le délégué de l'application du tout.
Autres conseils
Go avec la réponse de Ole, mais pour référence future, comment vous à votre délégué est:
MyAppDelegate *delegate = (MyAppDelegate *)[UIApplication sharedApplication].delegate;