2011-07-25 10 views

Odpowiedz

47

Spróbuj:

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

lub po prostu:

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

keyWindow zrobił to dla mnie – Eugene

+0

'keyWindow' zwrócone zero dla mnie. 'lastObject' zwrócił poprawny wynik. Dzięki. –

+2

Powinieneś użyć firstObject, a nie lastObject. Zobacz dokumentację "windows". – harryhorn

3

Jeśli masz wskaźnik do pewnego podrzędny w oknie, można łatwo uzyskać dostęp do jego okno:

UIWindow *window = mySubview.window; 
12

główne okno najlepiej jest znaleźć przy użyciu UIWindow * mainWindow = [UIApplication sharedApplication].windows.firstObject;

Używanie keyWindow może zwrócić klawiaturę lub okno UIAlertView, które znajduje się nad oknem aplikacji.

+0

To odpowiednia odpowiedź z wyjaśnieniem! Psułem sobie głowę, próbując zrozumieć, dlaczego mój widok znika, gdy pojawia się alert. – trickster77777

2

prostu mądry, współpracuje z dowolnej klasy:

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

Uwaga: Nie zapomnij importować klasie appDelegate

Powiązane problemy