一个dimiss 和 push 同用问题

一个dimiss 和 push 同用逻辑

业务逻辑:

1> a present b(nav),
2> dismiss b immediately,then using a push c,
3> c pop to a;

逻辑 demo 参考图


pustPresentLogic-APresentB_DismissBAndAPushC_CPopToA-.gif

重点问题,dimiss 和 push 不能同时开启动画,否则无效

//无效代码
[bVc dismissViewControllerAnimated:YES completion:^{
      CController *C = [[CController alloc] init];
      [weakSelf.navigationController pushViewController:C animated:YES];
 }];
//正常代码
[bVc dismissViewControllerAnimated:NO completion:^{
      CController *C = [[CController alloc] init];
      [weakSelf.navigationController pushViewController:C animated:YES];
 }];

但是因为 dismiss 的动画为 NO,所以在 push cVc 时候,会先显示 aVc 的界面,此处使用一个常用办法处理该界面显示突兀问题,使用截屏方法,将带有 bVc 的截屏图覆盖在 aVc 上,这样过度就不会出现奇怪的感觉

你可能感兴趣的:(一个dimiss 和 push 同用问题)