通过 UINavigationController 将整个 UIView 从一个 ViewController 传递到另一个

Posted

技术标签:

【中文标题】通过 UINavigationController 将整个 UIView 从一个 ViewController 传递到另一个【英文标题】:Passing an entire UIView From One ViewController to another via UINavigationController 【发布时间】:2012-10-15 21:29:41 【问题描述】:

这就是我正在做的 - 我有一个 UIView - 我将它从一个视图控制器传递到另一个。

当我回到第一个视图控制器时——uiview 不见了——取而代之的是一个白色的空白区域。

我正在使用 ARC - 任何想法 - 如果是因为这个或其他我想念的东西

谢谢

【问题讨论】:

您在 firstViewController 的 viewWill/DidAppear 中传递的视图的保留计数是多少? 【参考方案1】:

如果您将UIView 添加到另一个,那么它将从原来的位置删除。您不能同时在两个地方拥有一个视图。

当您返回第一个视图控制器时,您需要将视图放回原处。或者,不要做你正在做的事情。这不是真正的 MVC。传递数据,而不是视图。

【讨论】:

首先我为下一个视图控制器截取了 uiview 的屏幕截图 - 但随后方向变化挤压了图像。如果我通过了 uiview - 它工作得非常好 - 但现在唯一的问题是当它回来时我没有视图 - 而且根据苹果,我什至无法深度复制 uiview... 我对您的评论的回答是相同的。您需要将视图放回第一个视图控制器中,或者传递数据而不是UIView。没有理由在视图控制器之间传递视图。只需传递视图控制器设置视图所需的数据。

以上是关于通过 UINavigationController 将整个 UIView 从一个 ViewController 传递到另一个的主要内容,如果未能解决你的问题,请参考以下文章

通过远程通知从 AppDelegate 推送到 UINavigationController

当 UINavigationController 通过 Storyboard 模态呈现时,它的 rootViewController 与它没有连接

UINavigationController的使用介绍

通过 uinavigationcontroller 将变量从父视图传递到子视图

UINavigationController 如何成为 UITableView 的 navigationController?

通过 UINavigationController 将整个 UIView 从一个 ViewController 传递到另一个