如何在导航控制器堆栈上弹出具有多个视图控制器(2(的RootViewController并仅显示一个转换?
例如,VC A 将 VC B、C 推送到导航堆栈上。现在,我希望从 C 到 A 有一个平滑的动画过渡,而不显示 B。
我尝试了很多东西,但我总是看到B。
例如,我尝试过:
self.navigationController?.viewControllers.removeLast()
self.navigationController?.popToRootViewController(animated: true)
和:
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
}
}
}
}
以及用动画假弹出然后用动画真弹出,但我总是看到 B。 有很多 SO 线程,我尝试的不仅仅是我上面放的。
情节提要和视图
self.navigationController?.popToRootViewController(animated: true)
只有使用这条线对我有用。