uiview的子视图没有被清除

时间:2014-04-09 13:39:09

标签: ios objective-c cocoa-touch uikit

所以我使用导航控制器来处理两个视图控制器。一个是ItemsViewController,它是NavController的根视图控制器。

名为DetailViewController的第二个控制器被推送到ItemsViewController之上。这样我就可以使用这两个控制器进行深入分析。现在在DetailViewController里面我添加了几个子视图,比如按钮,文本字段,标签和imageView

在DetailViewController内声明的imageView指针属于'weak'类型,因此每当视图控制器的主视图被清除时,旧的imageView对象就不会挂起。但实际上我正在观察这种行为。

当我从DetailViewController的视图返回到ItemsViewController的表视图时,前者从父子控制器堆栈加载,以便当我重新进入DetailViewController的视图(与之前相同)时,重新加载从而重新创造了一个UIView。

因此,新的UIView已经创建了所有新的子视图对象。但是(这就是问题),new imageView对象中的旧图像对象仍然存在。这让我很困惑。有人可以解决这个问题吗?

1 个答案:

答案 0 :(得分:1)

ViewWillDisappear设置UIImageView如下,可以解决您的问题

imageView.image = nil