2012-10-25 25 views
6

我有一個場景,我從主窗口的rootViewController呈現一個模式視圖控制器。當它加載這個模式的內容時,我切換到另一個加載窗口,這個窗口是我製作的關鍵並且是可見的。iOS 5 UIWindow makeKeyAndVisible關閉模式

此窗口充當加載指示符,並且不允許用戶與應用程序進行交互。加載完成後,通過使其關鍵並可見,切換回主窗口。當我這樣做時,模式被強制關閉,應用程序不再能夠呈現模態。

有趣的是,如果在切換回主窗口時執行[UIWindow makeKeyWindow],則沒有問題。 [UIWindow makeKeyAndVisible]是導致問題的原因。 [UIWindow makeKeyWindow]是一個可接受的替代方案嗎?

這僅限iOS 5。 iOS 6沒有問題。我不支持iOS 4.有人知道這裏可能會發生什麼嗎?

+0

你不應該使用多於一個窗口,除了其他顯示像vga出 – Bastian

+0

我看到了這種相同的行爲。你剛剛決定使用makeKeyWindow,一切都好嗎?巴斯蒂安, – strawtarget

+0

,你能否詳細說明爲什麼不好的做法使用多個窗口。我沒有看到任何聲明應用必須或應該只有一個窗口的文檔。 UIWindow類參考指出,「除非應用程序可以在外部設備屏幕上顯示內容,否則應用程序只有一個窗口。」 –

回答

6

我得到了相同的行爲,如文檔指出makeKeyAndVisible方法是的便捷方法在我看來,合法的替代makeKeyAndVisible電話與工作代碼:

[window makeKeyWindow]; 
window.hidden = NO; 

不知道什麼是錯的,但它看起來像一個錯誤。

+0

謝謝你的回答。我嘗試了以上所有,看起來沒問題! –

0

這是iOS 5 UIWindow實現中的bug。我面對這種奇怪的行爲,阿列克謝的答案是要走的路。