UIViewController - 将不带闪光灯的呈现视图控制器切换为呈现视图控制器?

UIViewController - switch presented view controller without flash to presenting one?

我有一个呈现视图控制器,它呈现一个模式,如 VC,然后当用户完成该模式时,我想转换到另一个模式,但调用:

// we are done.
[self.presentingViewController dismissViewControllerAnimated:NO completion:nil];

if (self.showOtherContoller)
{
    UIViewController* aVC = [[UIViewController alloc] initWithNibName:@"someNib" bundle:nil];
    [self.presentingViewController aVC animated:NO completion:nil];
}

有效,但是呈现的基础视图控制器显示了大约一秒钟,所以它看起来很华丽。

基本上我想用另一个视图控制器替换一个视图控制器,而不是暂时放到呈现视图控制器。

感谢任何提示。

您的模态过渡样式是 CoverVertical。第一个模式在关闭时向下滑动,暴露其 presentingViewController,然后第二个模式向上滑动,隐藏 presentingViewController。

您想更改过渡,使第一个模态看起来被第二个模态取代。

在关闭第一个并呈现第二个之前,将两个视图控制器的模式过渡样式更改为 CrossDissolve。在关闭第二个之前,将其更改为 CoverVertical,以便它向下滑动以匹配第一个模态的向上滑动过渡。