iOS modal view的关闭和显示问题
2013-07-12 18:24 王妞 阅读(1254) 评论(0) 编辑 收藏 举报今天遇到一个问题:
需要关闭当前modal view,再present另一个modal view。
如果这么写:
[self dismissModalViewControllerAnimated:NO];
[self.delegate showBorderDetectionView];
执行了第一句,再执行第二句的时候,self就变成僵尸了,就是self已经被ARC释放了。
有3个解决方法:
1. 延长self的生命:
CFRetain(CFBridgingRetain(self));
[self dismissModalViewControllerAnimated:NO];
[self.delegate showBorderDetectionView];
CFRelease(CFBridgingRetain(self));
2. 用delegate,在外部,先关闭preveiw view,再present border view
[self.delegate closePreviewAndShowBorderDetectionView];
3. 把preview view的viewController设置成全局的。不是每次present的时候,都重新alloc。而是只在viewController为nil的时候才alloc.
经过考虑,preview view是个主要界面,我采用了第三种方法,把viewController设置成全局的。