2011-07-25 70 views

回答

47

嘗試:

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

或者乾脆:

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

keyWindow爲我做 – Eugene

+0

'keyWindow'返回nil我。 'lastObject'返回了正確的結果。謝謝。 –

+2

你應該使用firstObject而不是lastObject。請參閱「windows」文檔 – harryhorn

3

如果你有一個指針在窗口中的一些子視圖,您可以輕鬆地訪問它的窗口:

UIWindow *window = mySubview.window; 
12

的主窗口最好使用UIWindow * mainWindow = [UIApplication sharedApplication].windows.firstObject;

使用keyWindow可以返回一個鍵盤或UIAlertView窗口,它位於應用程序窗口的上方。

+0

這是解釋正確的答案!我已經打破了我的頭試圖找出爲什麼我的觀點消失時,有alertview。 – trickster77777

2

簡單巧妙,從任何類的工作:

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

注意:不要忘記導入您的appDelegate類