因此,我創建並在我的iOS應用程序中顯示自定義窗口,因爲我正在編寫動態警報視圖,其功能類似於咆哮/吐司警報。它在ios6 AWESOMELY(希望我可以開源這個寶貝,你可以全部檢查出來)iOS5自定義窗口旋轉問題
但無論如何,當我在ios5中運行這個,我的警報存在的窗口似乎不旋轉設備/模擬器。無論如何,我的自定義窗口保持縱向模式。
UIWindow只是一個UIView子類,所以沒有很好的'shouldRotate'委託方法。
我有點難倒這是爲什麼在iOS5中發生,但
因此,我創建並在我的iOS應用程序中顯示自定義窗口,因爲我正在編寫動態警報視圖,其功能類似於咆哮/吐司警報。它在ios6 AWESOMELY(希望我可以開源這個寶貝,你可以全部檢查出來)iOS5自定義窗口旋轉問題
但無論如何,當我在ios5中運行這個,我的警報存在的窗口似乎不旋轉設備/模擬器。無論如何,我的自定義窗口保持縱向模式。
UIWindow只是一個UIView子類,所以沒有很好的'shouldRotate'委託方法。
我有點難倒這是爲什麼在iOS5中發生,但
它通常不推薦的UIWindow
兩個用多個實例在一個iOS應用並不6.任何幫助,將不勝感激^ _ ^。唯一有效的理由是支持外部屏幕。您應該使用UIView
代替,理想情況下由UIViewController
管理。我假設,(因爲你沒有提供任何代碼,我只能假設)你的窗口不「旋轉」的原因是,它根本沒有得到關於設備旋轉的任何通知。只有keyWindow
默認收到它們。
我強烈建議您重新設計您的應用,以便使用正確管理的UIView
。如果你因爲某種原因拼命想不想這樣做,那麼你必須註冊你的實例UIWindow
以接收UIDeviceOrientationDidChangeNotification
然後(在處理程序中)評估新的方向,並相應地改變窗口的框架(加上其他的東西需要根據方向變化來完成)
我的窗口有一個rootviewcontroller,我完全忘了。我只是需要實施
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation{
return YES;
}
爲了得到它的工作。
:-D
所以我使用窗口的原因是因爲我們正在編寫自己的自定義警報和咆哮消息。我們需要它彈出鍵盤和一切,而UIWindow是完美的工具(.windowLevel = UIWindowLevelAlert:D) 所以,是的,這不是建議的,但爲了完成我們要做的事情,我不得不。我的警報很酷,不過你可以在視圖中或在這個新的自定義窗口中顯示它:-D並且,在ios6中,一切都很好,我不明白爲什麼ios5會中斷。 我會研究註冊自定義窗口中的旋轉事件。 –