在持久化 UIView 的同时推送 navigationController

Posted

技术标签:

【中文标题】在持久化 UIView 的同时推送 navigationController【英文标题】:Push navigationController while persisting a UIView 【发布时间】:2014-09-17 10:12:49 【问题描述】:

我正在使用导航控制器从 vc1 推送到 vc2。我在 vc1 中有一个 mapview,我还想在 vc2 中复制它,因此看起来基本上只有一个新的导航栏动画到视图中,并且 mapview 在转换到 vc2 期间从未移动过。

我尝试在 vc1 prepareForSegue 中设置 vc2.mapview = self.mapview,但我不喜欢这种过渡。我也尝试过自定义模态序列,以便在 vc2 中用清晰的背景覆盖 mapview,但是地图不会检测到触摸。

这与 Tariq 在这里遇到的问题 (ios - pushViewController without sliding Background Image) 类似,但对我来说,我仍然需要能够与 vc2 中的地图视图进行交互。

欢迎任何建议,谢谢!

【问题讨论】:

【参考方案1】:

尝试找到一种在 2 个视图控制器中拆分窗口的方法。一顶一底。 顶部应该有导航控制器,而底部只有地图。 在它们之间建立一些链接,你就完成了。

或者你可以使用UITabBarController

【讨论】:

感谢@Merla Dan,但我不确定我是否完全理解。你是说我应该让导航控制器位于视图控制器之上,而不是包含地图视图,然后在该顶部导航控制器上执行推送 segue? No.. 作为应用程序的根,您有一个窗口。在窗口中,您放置了 2 个视图控制器。这些视图控制器应该在同一屏幕中可见。一个应该带有导航控制器,另一个应该带有地图。当你继续..它只会用 navController 继续,地图会留在你想要的地方 喜欢 iPad 上的 Master-Detail 项目 嗨,我玩弄了你的建议,我想我现在在正确的路线上......我有一个嵌入在 uinavigation 控制器中的 uiview,并且在那个 uiview 中我有一个容器视图,它是我放地图的地方。然后我只处理导航控制器,而不是容器视图?

以上是关于在持久化 UIView 的同时推送 navigationController的主要内容,如果未能解决你的问题,请参考以下文章

了解 UIView 是不是是从 UITabBar 的更多菜单中推送的

UIView 需要推送一个 UIViewController(委托)

如何从 UIView 推送 UIViewController

在 Modal 之后推送 UIView

以编程方式从 UiView 推送新视图控制器的问题

iOS过滤tableview导航推送UIView,然后UIView返回导致crash