如何popToRootViewController在navigationController堆栈上有多个viewController,并且只显示一个过渡?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何popToRootViewController在navigationController堆栈上有多个viewController,并且只显示一个过渡?相关的知识,希望对你有一定的参考价值。
如何popToRootViewController在navigationController堆栈上有多个viewController(2),并且只显示一个过渡?
例如VC A将VC B、C推到导航栈上。现在我想让C到A有一个平滑的动画过渡,而完全不显示B。
我试过很多方法,但总是看到B。
例如,我试过。
self.navigationController?.viewControllers.removeLast()
self.navigationController?.popToRootViewController(animated: true)
我试了很多方法,但总是看到B
func popBack<T: UIViewController>(toControllerType: T.Type) {
if var viewControllers: [UIViewController] = self.navigationController?.viewControllers {
viewControllers = viewControllers.reversed()
for currentViewController in viewControllers {
if currentViewController .isKind(of: toControllerType) {
self.navigationController?.popToViewController(currentViewController, animated: true)
break
}
}
}
}
以及用动画false弹出,然后用动画true弹出,但我总是看到B. 有很多SO的线程,我尝试了更多的东西,不仅仅是我上面说的。
答案
self.navigationController?.popToRootViewController(animated: true)
只有用这一行对我有用。
以上是关于如何popToRootViewController在navigationController堆栈上有多个viewController,并且只显示一个过渡?的主要内容,如果未能解决你的问题,请参考以下文章
如何popToRootViewController在navigationController堆栈上有多个viewController,并且只显示一个过渡?
需要用 popToRootViewController 发布中间视图吗?
双击UITabBarController时防止自动popToRootViewController
在 popToRootViewController 之后没有显示标签栏