不想看扯淡的同窗,直接拉倒底部查看。。。。。。。。。。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];
万事大吉,回家找媳妇去。。
哈哈哈哈