2011-07-25 40 views

Trả lời

47

Hãy thử:

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

hoặc đơn giản là:

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

keyWindow đã làm nó cho tôi – Eugene

+0

'keyWindow' trở bằng không đối với tôi. 'lastObject' trả lại kết quả chính xác. Cám ơn. –

+2

Bạn nên sử dụng firstObject và không lastObject. Xem tài liệu "windows" – harryhorn

3

Nếu bạn có một con trỏ đến một số subview trong cửa sổ, bạn có thể dễ dàng truy cập vào cửa sổ của nó:

UIWindow *window = mySubview.window; 
12

Các cửa sổ chính được tìm thấy tốt nhất bằng cách sử dụng UIWindow * mainWindow = [UIApplication sharedApplication].windows.firstObject;

Sử dụng keyWindow có thể trả về bàn phím hoặc cửa sổ UIAlertView nằm phía trên cửa sổ ứng dụng của bạn.

+0

Đó là câu trả lời đúng với lời giải thích! Tôi đã phá vỡ đầu của tôi cố gắng tìm ra lý do tại sao quan điểm của tôi biến mất khi có cảnh báo. – trickster77777

2

Đơn giản chỉ cần thông minh, làm việc từ bất kỳ lớp:

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

Lưu ý: đừng quên nhập lớp appdelegate bạn

Các vấn đề liên quan