我正在使用优秀的TSAlertView项目为有视觉障碍的人创建带有放大字体的弹出警报。不幸的是,我遇到了一个困扰我几天的问题。
TSAlertView
当用户即将移动到应用程序中的新页面以确认当前页面的内容时,我正在使用作为验证器弹出窗口。即,用户按下按钮移动到应用程序中的新页面,TSAlertView
屏幕上的弹出窗口,如果用户按下是按钮,则当前使用自定义segueUIViewController
替换为不同的页面。UIViewController
该应用程序随机崩溃,EXC_BAD_ACCESS
我有根据的猜测是,当在完成其关闭动画UIViewController
之前释放电流时,它会崩溃。TSAlertView
一个明显的解决方法是增加当前动画UIViewController
和新动画之间的动画持续时间,但这仅仅依赖于良好的时机,这是灾难的根源。有没有一种简单的方法可以防止演示UIViewController
被解除分配,直到TSAlertView
被解除分配?主项目使用 ARC,TSAlertView
而非 ARC。
编辑:橡皮鸭在行动。我在方法中添加了以下两行-(void) show
:
_presentingViewController = [[UIApplication sharedApplication] keyWindow].rootViewController;
[_presentingViewController retain];
release
和中的一个对应-(void) dealloc
。现在一切似乎都正常。我是否正在创建一个循环保留链?有更好的答案吗?