2011-07-25 19 views

Respuesta

47

Probar:

UIWindow *frontWindow = [[[UIApplication sharedApplication] windows] 
                  lastObject]; 

o simplemente:

UIWindow *frontWindow = [[UIApplication sharedApplication] keyWindow]; 
+0

keyWindow lo hizo por mí – Eugene

+0

'keyWindow' volvió nula para mí. 'lastObject' devolvió el resultado correcto. Gracias. –

+2

Debe usar firstObject y no lastObject. Consulte la documentación de "Windows" – harryhorn

3

Si usted tiene un indicador a una vista secundaria de la ventana, se puede acceder fácilmente a su ventana:

UIWindow *window = mySubview.window; 
12

El la ventana principal se encuentra mejor usando UIWindow * mainWindow = [UIApplication sharedApplication].windows.firstObject;

El uso de keyWindow puede devolver un teclado o la ventana UIAlertView, que se encuentran sobre la ventana de la aplicación.

+0

¡Esa es la respuesta correcta con una explicación! Me he roto la cabeza tratando de descubrir por qué mi vista desaparece cuando hay una alerta. – trickster77777

2

Simplemente inteligente, obras de cualquier clase:

[(YourAppDelegate *)[[UIApplication sharedApplication] delegate] window]; 

Nota: no se olvide para importar su clase AppDelegate

Cuestiones relacionadas