将顶部视图正确替换为UINavigationController中的另一个视图



我有一个UINavigationController,带有以下视图控制器

A->B(B在顶部)

现在对于B中的一些操作,我想用C替换B(最后应该是A->C)。

我尝试了以下操作:当操作在B中发生时,我执行[self.navigationController popViewControllerAnimated:NO];。在A的viewWillAppear功能中,我检查是否需要立即按下C并执行此操作

问题是,当C被推动时,过渡动画是一个弹出动画(从右向左滑动),而不是推动
看起来应用的动画与早期的流行音乐混淆了。

我该如何解决这个问题?

我试着在上面的[self.navigationController popViewControllerAnimated:NO];中通过YES,但这并没有解决问题,

这应该有效:

NSMutableArray *vcs = [[self.navigationController viewControllers] mutableCopy];
NSUInteger lastVcIndex = [vcs count] - 1;
if (lastVcIndex > 0) {
    [vcs replaceObjectAtIndex:lastVcIndex withObject:viewControllerC];
    [self.navigationController setViewControllers:vcs animated:YES];
}

相关内容

最新更新