Domanda

Vorrei sapere quando la barra di stato cambia altezza a causa per esempio di una telefonata in corso. Così ho messo il seguente nel mio UIApplicationDelegate:

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

e in effetti quando ho attivare o disattivare la barra di stato della chiamata sul simulatore da qualsiasi schermata dell'applicazione, il messaggio viene visualizzato nella console, ma quello che voglio fare è quello di spostare un UITextField o 2 in un'altra classe in quanto il doppio barra di stato -Altezza è in disordine una schermata in particolare. Ho avuto fortuna con il ridimensionamento automatico in questa schermata.

Quindi la mia domanda è: come posso fare per implementare il codice per uno schermo e uno schermo solo da questo metodo nel AppDelegate? Spara a tutti gli schermi ma ho solo bisogno di uno. Idealmente mi piacerebbe un metodo solo in una classe al fuoco.

È stato utile?

Soluzione

Il sistema sarà anche inviare un UIApplicationWillChangeStatusBarFrameNotification allo stesso tempo. Avere il vostro View Controller ascolta questa notifica. Non c'è bisogno di pasticciare con il delegato applicazione a tutti.

Altri suggerimenti

Vai con la risposta di Ole, ma per riferimento futuro, come si arriva a delegato è:

MyAppDelegate *delegate = (MyAppDelegate *)[UIApplication sharedApplication].delegate;
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top