最近实现的一个需求需要用到模态视图,所以少不了与dismissViewController方法打交道。本文主要讲一讲在使用dismissViewController方法过程中遇到的那些坑。
由于业务逻辑比较特殊,程序中需要在A视图控制器中present B视图控制器的视图,B视图控制器需要present C视图控制器中的视图。最后从C直接返回A。
dismissViewControllerAnimated方法并不难用,其原型为:
- (void)dismissViewControllerAnimated:(BOOL)flag completion:(void (^)(void))completion;
1.flag的含义
flag用与判断知否执行动画(这个很关键,后面会细说)。completion是一个block,用于在dismiss之后执行回调。
我们知道,presentViewController和dismissViewController是一组方法,用于展现和关闭模态视图,而且整个过程的动画是可以完全自定义的。这里的自定义不是像网上有些代码那样,创建一个CATransition对象,设置一堆属性完事,依我愚见,这种只能选择几个固定的系统动画的方式和没有自定义动画没有任何区别!
真正