update support software mac for descargas descargar apps apple actualizar iphone uiwindow uiapplication

iphone - support - descargar software de ipad



cómo obtener mi UIWindow usando UIApplication? (4)

Solo tengo una ventana y probé

UIWindow* mWindow = [[UIApplication sharedApplication] keyWindow];

pero esto devolvió nil.

También probé:

UIWindow* mWindow = (UIWindow*)[[UIApplication sharedApplication].windows objectAtIndex:0];

Pero esto generó una excepción y la aplicación se cerró, cuando traté de imprimir

[[UIApplication sharedApplication].windows count]

Imprimió 0

Nota: Estoy poniendo esto en el método viewDidLoad de mi única controladora de vista y esta es completamente una nueva aplicación basada en la vista de iPad, así que no cambié nada, solo tratando de obtener la ventana

Por favor, ayúdame a conseguir este objeto


La forma más fácil es obtener la ventana del delegado de la aplicación en su lugar:

UIWindow *keyWindow = [[[UIApplication sharedApplication] delegate] window]; // Do something with the window now


La ventana de clave de su aplicación no está configurada hasta [window makeKeyAndVisible] en el delegado de su aplicación. Su UIViewController probablemente se está cargando desde un NIB antes de esta llamada. Esto explica por qué keyWindow está volviendo nulo.

Afortunadamente, su controlador de vista no necesita pasar por UIApplication para obtener la ventana. Puedes hacer:

UIWindow *mWindow = self.view.window;


Si su ventana principal es una salida de su AppDelegate (que debería ser el caso), simplemente puede usar

MyAppDelegate* myDelegate = (((MyAppDelegate*) [UIApplication sharedApplication].delegate)); [myDelegate.window ...]


[[[UIApplication sharedApplication] windows] objectAtIndex:0]; // You can also check the count of this to make sure, because if there are no windows it will crash.