不想看扯淡的同窗,直接拉倒底部查看。。。。。。。。。。html
這幾天開發的程序遇到了這樣的問題。ios
忽然以前在ios7運行的程序全無動畫效果。app
系統自帶的push pop之類的也徹底沒有動畫效果,就好像view直接add上去的同樣。post
蛋疼。。。。測試
查看了下代碼。。動畫
徹底不知道該如何下手了。spa
怎麼辦。。3d
百度 谷歌。。。htm
關鍵字:ios7 動畫效果消失blog
出現以下界面。。。
這他媽是什麼啊。。。
換谷歌。。
谷歌仍是比百度靠譜,可是點進去發現。這也只是跟我同樣出現了這些現象提出來的問題,可是解決方案呢,where,你在哪裏?
難道是個人關鍵字不對。。
繼續換關鍵字。。。:ios7 pushviewcontroller 動畫消失
一一查看,咦,發現了一個有用的東西。
發現有人說模態下有可能出現這個問題。說有可能把keywindow的rootviewcontroller變爲空。。
巧代碼求證。。
發現確實有問題。。當彈出alert時間,有可能把keywindow變爲空。
如何解決。。。
繼續搜索。。。
又找到:地址:http://blog.woodbunny.com/post-126.html
通常來講 [UIApplication sharedApplication].keyWindow.rootViewController 會在 appDelegate 中初始化,而且整個應用運行過程當中都不會變。
因此在不少地方須要用 presentModelViewController 方法時,用這個 rootViewController 是很方便的,由於它至關於一個全局變量,無需再申請、釋放。
可是本人在使用過程當中發現有 rootViewController 被改成 nil 的狀況。
分析後發現,當 UIAlertView 調用 show 方法後,rootViewController 會被改成 nil,當它 dismiss 後又改回去。而我須要用戶在點擊 alertview 上的按鈕後再作 presentModelViewController 的操做。
解決方法:
不要使用 alertview delegate 中的
- (void)alertView:clickedButtonAtIndex:
方法
而要用:
- (void)alertView:diddismissWithButtonAtIndex:
方法!
按照這個大牛的方法去更改。
血淚啊。。。改改改
改完後,心情舒暢,應該沒有問題了吧。
好,運行app。
彈框。。正常。
哈哈哈
好了。。。
but,多點擊幾回之後,又出現了這個狀況。靠。。
繼續找緣由。
覺得仍是這個keywindow出了問題。一直早這個方向尋找緣由。。
2天過去了。除了知道監測keywindow變化的知識外,一無所得。。。
就在要放棄的時候,想到了用谷歌 english 去谷歌問題。。。
我草啊
我草啊
啥也不說了 上圖:
點擊進去:
一句話,尼瑪啊。就這一句話。。。。
心情激動,按照這個去修改。
運行app,正常。
激動,忐忑,繼續測試。
正常,激動
繼續測試。
正常。
我草,這一刻的心情爽爆了。
在下班時間依然在公司寫下了以上文字。。。
後續整理。。。。。。。
先總結下出現這些問題的緣由
:我的理解,若有錯誤歡迎指正。
就是在一個動畫尚未徹底結束的時間,你把它的父視圖移除了。
解決:大量的修改代碼是不現實的,只能下次新開工程的時間去注意這些問題。最簡單的方法。進入這個頁面時間調用這行代碼
[UIView setAnimationsEnabled:YES];
萬事大吉,回家找媳婦去。。
哈哈哈哈