2012-10-25 27 views
6

Tôi có một kịch bản mà tôi trình bày một bộ điều khiển xem phương thức từ rootViewController của cửa sổ chính. Trong khi nó đang tải nội dung của phương thức này, tôi đang chuyển sang cửa sổ tải khác mà tôi tạo khóa và hiển thị.iOS 5 UIWindow makeKeyAndVisible đóng phương thức

Cửa sổ này hoạt động như một chỉ báo tải và không cho phép người dùng tương tác với ứng dụng. Khi nó được thực hiện tải, tôi chuyển trở lại cửa sổ chính bằng cách làm cho nó quan trọng và có thể nhìn thấy. Khi tôi làm điều này, các phương thức là lực lượng đóng cửa và các ứng dụng không còn có thể trình bày các phương thức.

Điều thú vị là đủ, nếu tôi thực thi [UIWindow makeKeyWindow] khi chuyển về cửa sổ chính, không có vấn đề gì. [UIWindow makeKeyAndVisible] là nguyên nhân gây ra sự cố. [UIWindow makeKeyWindow] là một giải pháp thay thế có thể chấp nhận được không?

Đây chỉ là iOS 5. Không có vấn đề gì trong iOS 6. Tôi không hỗ trợ iOS 4. Có ai biết điều gì có thể xảy ra ở đây không?

+0

bạn không nên sử dụng nhiều hơn một cửa sổ, ngoại trừ các màn hình khác như vga ra – Bastian

+0

Tôi thấy hành vi tương tự này. Bạn đã quyết định sử dụng makeKeyWindow và mọi thứ đều ổn không? – strawtarget

+0

Bastian, bạn sẽ có thể giải thích tại sao thực hành không tốt của nó để sử dụng nhiều hơn một cửa sổ. Tôi không thấy bất cứ điều gì trong các tài liệu nói rằng một ứng dụng phải hoặc chỉ nên có một cửa sổ. Các tham chiếu lớp UIWindow nói, "Trừ khi một ứng dụng có thể hiển thị nội dung trên màn hình thiết bị bên ngoài, một ứng dụng chỉ có một cửa sổ." –

Trả lời

6

tôi có hành vi tương tự, và như tài liệu nói rằng makeKeyAndVisible phương pháp là một phương pháp thuận tiện có vẻ như với tôi legit để thay thế makeKeyAndVisible gọi với mã làm việc:

[window makeKeyWindow]; 
window.hidden = NO; 

Không có ý tưởng gì là sai, nhưng nó trông giống như một con bọ.

+0

Cảm ơn bạn đã trả lời. Tôi đã cố gắng trên và tất cả đều ổn! –

0

Đó là lỗi chắc chắn trong việc triển khai UIWindow của iOS 5. Tôi phải đối mặt với hành vi kỳ lạ này và câu trả lời của Aleksey là con đường để đi.

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