Frage

Ich möchte wissen, wann die Statusleiste Höhe als Ergebnis ändert sich z.B. ein Telefongespräch geführt. Also habe ich folgendes in meinem UIApplicationDelegate setzen:

-(void)application:(UIApplication *)application willChangeStatusBarFrame:(CGRect)newStatusBarFrame {
    NSLog(@"yup, got here");
}

und in der Tat, wenn ich das in-Call-Statusleiste auf dem Simulator von jedem Bildschirm in der Anwendung wechseln, erscheint die Meldung in der Konsole, aber was ich will zu tun ist, eine UITextField oder 2 in einer anderen Klasse, da die Doppel bewegen -Höhe Statusleiste wird ein Bildschirm insbesondere vermasselt. Ich habe kein Glück gehabt mit dem automatischen Größen auf diesem Bildschirm.

Also meine Frage ist, wie gehe ich über Code Implementierung für einen Bildschirm und einen Bildschirm nur von dieser Methode in der AppDelegate? Sie feuert in allen Bildschirmen, aber ich brauche es nur in einem. Im Idealfall würde ich nur in dem einem Klasse Feuer ein Verfahren mag.

War es hilfreich?

Lösung

Das System wird auch ein UIApplicationWillChangeStatusBarFrameNotification zugleich posten. Haben Sie Ihre Ansicht-Controller auf diese Mitteilung hören. Keine Notwendigkeit zu Chaos mit dem AppDelegate überhaupt.

Andere Tipps

Gehen Sie mit Ole Antwort, aber für die Zukunft, wie Sie Ihre Stellvertretung erhalten ist:

MyAppDelegate *delegate = (MyAppDelegate *)[UIApplication sharedApplication].delegate;
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top