ios - 导航堆栈不会更新,从 GMSAutocompleteResultsViewController 继续

标签 ios swift uinavigationcontroller segue uistoryboardsegue

我在通过 pushViewController 转至现有 UIViewcontroller 时遇到问题。

当我点击 resultsViewController 中的位置时,我希望转至 MainVC,但出现错误:

pushViewController:animated:在现有的过渡或演示发生时调用;导航堆栈将不会更新。

我该如何解决这个问题,并过渡到 MainVC?

最佳答案

一些事情:

  1. 确保您没有在导航上“加倍”。如果您使用 Segue 转换到另一个 View Controller ,请不要调用 .pushViewController()present().

  2. 了解推送呈现之间的区别。

在您的情况下,(根据您的描述和屏幕截图)MainVC 是您的 NavController 的根 VC,并且 Segue 已推送 SearchVC 到导航堆栈。如果 SearchVC“从右侧滑入”,几乎可以肯定是这种情况。

如果你已经push一个 VC 到 Nav Stack 上,那么你想用 popViewController(animated: Bool) 将它pop 离开堆栈>。这将“将之前的 VC 从左侧滑回”。

在您的goToVc() 函数中,您正在创建一个MainVC 实例,并尝试将其压入堆栈。

关于ios - 导航堆栈不会更新,从 GMSAutocompleteResultsViewController 继续,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47618472/

相关文章:

ios - 使用 UIWebView 忽略无效的服务器证书

ios - 在 WatchKit 中使用 slider

ios - 我的 Swift 获取请求返回具有错误关系的对象

swift - 仅更改 UINavigationBar 背景的 alpha?

iphone - UINavigationcontroller 推送和弹出

ios - NSValueTranformer 用于加密数据

ios - 使用带有搜索栏的键搜索 Firebase 数据库

ios - 切换语言后重新加载 tabBarController

objective-c - 是什么让钥匙串(keychain)项目独一无二(在 iOS 中)?

ios - swift 火力基地 : Cannot store object of type _SwiftValue at fileURL