ios - 如何使用 TabViewController 解决 Google Maps sdk 方向问题
问题描述
我为 iPhone 启动了一个 iOS 项目,我认为可能需要一个标签栏。后来我决定不想要它(我想要额外的屏幕空间),所以我尝试删除标签栏并将我的主 ViewController 设置为情节提要中的初始 viewController。
这导致了一个奇怪的错误,设备的方向不再正确调整。例如,从纵向切换,如图所示:
在风景中变成这样:
如果您以横向启动应用程序,它看起来会很好,但是当您切换到纵向时会出现类似的结果。该错误体现在屏幕方向之间的转换中。
我尝试了以下方法:
- 我恢复了标签栏,问题就消失了。这个问题是由我如何删除标签栏而不是其他问题引起的。
- 我搜索了其他有关此问题的文章。到目前为止,我只看到了有关如何安装标签栏的文档,而不是如何安全删除它的文档。
- 我尝试使用 IBOutlet 将选项卡栏连接到 viewController,然后设置 tabBar.isHidden = true。这是一个糟糕的hack,但无论如何它都不起作用。UITabBar 没有这样的成员。
- 我尝试在检查器中比较 tabBar viewController 和我想要的初始 viewController 之间的设置,看看有什么不同。除了最初的 viewController 复选框外,我没有看到可能导致此问题的设置。
问题:这是故事板(或其他地方)中的设置问题,还是只是一个错误?我的下一个解决方案尝试是删除整个故事板,然后重新创建它并将其连接回 viewController。如果没有必要,这是我想避免的大量工作。
任何帮助表示赞赏。如果我找到解决方案,我会确保发布它。谢谢!
更新:我找到了一种解决方法,方法是转到情节提要中的 UI 选项卡栏控制器,在选项卡栏控制器场景 -> 选项卡栏控制器中选择选项卡栏,然后检查检查器中的“隐藏”框。这具有在应用程序运行时摆脱标签栏的预期效果。就好像它不存在一样。
虽然这允许我继续使用该应用程序,但标签栏的内容是我想摆脱的应用程序中不必要的代码。
解决方案
自从我最初发表这篇文章以来,我通过实验发现,每次我以编程方式或在情节提要中将 Google 的 GMSMapView 添加到 viewController 时,都会遇到上述方向问题。我最初的问题不是我想的那样
从那以后,我尝试完全重建故事板、viewController 和所有内容,但问题并没有消失。我还尝试重载视图的方向方法无效。
但是,如果您在使用 Google Maps sdk 时遇到此方向问题,则将包含 GMSMapView 的视图控制器嵌入选项卡视图控制器中,然后隐藏选项卡栏(除非您想要选项卡栏)修复了我项目中的方向问题。它不漂亮,但它有效。
推荐阅读
- swift - 围绕特定节点环绕 Scenekit 摄像机
- npm - 在 CentOS 7 上运行大炮(使用 npm)失败
- javascript - 在javascript中比较一维数组和多维数组
- css - css后台在服务器中找不到文件
- angular - 运行“ng build --prod”时出现“./src/polyfills.ts 中的错误”
- php - Facebook InsightsPresets 未找到
- java - 从 Activity 向 Fragment 发送数据:NPE
- sql - 数组中时间戳之间的平均间隔
- oop - 使用 Translate Transition 和 JavaFX 的 Java OOP
- r - 在 R Shiny 图上选择不同颜色的线条