不想看扯淡的同学,直接拉倒底部查看。。。。。。。。。。
这几天开发的程序遇到了这样的问题。
突然之前在ios7运行的程序全无动画效果。
系统自带的push pop之类的也完全没有动画效果,就好像view直接add上去的一样。
蛋疼。。。。
查看了下代码。。
完全不知道该如何下手了。
怎么办。。
百度 谷歌。。。
关键字:ios7 动画效果消失
出现如下界面。。。
这他妈是什么啊。。。
换谷歌。。
谷歌还是比百度靠谱,但是点进去发现。这也只是跟我一样出现了这些现象提出来的问题,但是解决方案呢,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];
万事大吉,回家找媳妇去。。
哈哈哈哈