我在通过 pushViewController 对现有UIViewcontroller
进行 segue 时遇到问题。
当我点击结果视图控制器中的位置时,我希望 MainVC 的续集,但我有一个错误:
pushViewController:animated:在发生现有过渡或演示时调用;导航堆栈将不会更新。
我怎样才能解决这个问题,并过渡到MainVC?
几件事:
-
确保您没有在导航上"加倍"。如果使用Segue转换到另一个视图控制器,则不要同时调用
.pushViewController()
或present()
。 -
了解推送和呈现之间的区别。
在您的情况下,(根据您的描述和屏幕截图)MainVC
似乎是 NavController 的根 VC,并且 Segue 已将SearchVC
推送到导航堆栈上。如果SearchVC
"从右边滑入",那几乎可以肯定是这样。
如果已将 VC 推送到导航堆栈上,则希望使用popViewController(animated: Bool)
将其从堆栈中弹出。这将"将以前的VC从左侧滑回"。
在goToVc()
函数中,您正在创建一个新的MainVC
实例并尝试将其推送到堆栈上。