故事:辭退UIActionSheet編程在iOS的8個螺絲釘起來的UIApplication的Windows/keyWindow
我需要以編程方式解僱時,應用程序切換到後臺一個UIActionSheet,和我沒在的iOS 7,是遍歷[UIApplication sharedApplication].windows
和找到類型爲UIActionSheet
的視圖,然後解僱它。它並不在IOS工作8.
背景:
在iOS 8的,UIAlertController
應被用於呈現警報或動作片,以及位實驗表明UIActionSheet
使用UIAlertController
內部實現:
po [[UIApplication sharedApplication] keyWindow] <_UIAlertControllerShimPresenterWindow:
po [[[UIApplication sharedApplication] keyWindow] rootViewController] <_UIAlertShimPresentingViewController: 0x7faa0cf049f0>
po [[[[UIApplication sharedApplication] keyWindow] rootViewController] presentedViewController] <UIAlertController: 0x7faa0c8cb9e0>
其中有正確的標題,消息等
困惑:
我加入一些代碼以關閉控制器,它並關閉它。然而,該應用程序現在不響應任何用戶交互,並且我發現在解散之後,keyWindow
仍然是_UIAlertControllerShimPresenterWindow
,那麼我很困惑,不應該放棄提供的控制器清理它的窗口?或者,是不是因爲它在應用程序轉到後臺時被解僱,所以窗口層次結構不在正常狀態,因此事情就搞砸了?
任何人都可以提供一些意見嗎?
謝謝!
爲什麼不在UIAlertController上使用dismissViewController? – sha 2014-10-30 01:51:25
謝謝@sha我試過了,但沒有奏效。 – hzxu 2014-10-30 03:26:03
如果那不起作用,還有其他奇怪的事情正在發生。 – 2015-01-12 15:33:24