iOS 控制器按顺序弹出

用队列+信号量实现了:
一次添加多个控制器,然后present第一个控制器,调用dismiss后自动present第二个控制器,依次进行。。。

支持:
1.连续添加(每次一组或一个控制器)
2.每个控制器都可以添加:
“弹出后回调”(PresentCompletion):通过添加单个控制器的API传入
“关闭后回调”(DismissCompletion):dismiss时,使用系统自带的Completion即可

具体demo看:
https://github.com/iosLiuPeng/MJViewControllerQueue.git

效果图:


效果图

API:

@interface UIViewController (Queue)

/// 添加一组控制器(按数组顺序弹出)
+ (void)addViewControlerArrayForName:(NSArray <NSString *>*)arrVC;

/// 添加一组控制器(按数组顺序弹出)
+ (void)addViewControlerArray:(NSArray <UIViewController *> *)arrVC;

/**
 添加控制器
 
 @param vcName 控制器名称
 @param completion present后回调
 */
+ (void)addViewControllerForName:(NSString *)vcName withPresentCompletion:(void (^ __nullable)(void))completion;

/**
 添加控制器
 
 @param vc 控制器
 @param completion present后回调
 */
+ (void)addViewController:(UIViewController *)vc withPresentCompletion:(void (^ __nullable)(void))completion;

/// 开始  (如果队列中有之前的任务,请先移除)
+ (void)activeQueue;

/// 移除队列中任务  (只有移除了之前的任务,才能新增任务)
+ (void)removeQueue;

@en
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 用到的组件 1、通过CocoaPods安装 2、第三方类库安装 3、第三方服务 友盟社会化分享组件 友盟用户反馈 ...
    SunnyLeong阅读 14,714评论 1 180
  • 情深深甚几许 雨蒙蒙梦依旧 想你的夜里 唯有孤灯伴夜凉 终不眠 梦方断 没有萤火 亦无牛郎织女 独有我漫长打坐 一...
    星海满月阅读 577评论 8 8
  • 《红语堂十言集》第五章 1、任何人都不能有离开了我地球就要停止转动的思想。实事证明,地球离开谁,都在转动。 2、在...
    红林主人阅读 249评论 0 1
  • 1.睡莲 恼人的蛙声 惊起荷塘月色。 在朝霞的渗透中 开成一朵禅心。 风撩起墨绿的裙摆 蜻蜓从远方赶来 立于荷尖。...
    清梅May阅读 249评论 0 0
  • 悟我之心践行第9天,继续欣赏先生身上的优点,他的七魄中有一个7,儿子七魄中也有一个7,看着他们父子俩每天打电话聊得...
    周志英阅读 289评论 2 0