如何使用自定义子视图更新或重置UIView?

时间:2010-08-31 00:51:36

标签: iphone uiview subview

我在UIViewController中有一个UIView,我在viewDidAppear方法中添加了一个自定义子视图。

MyView *myView = [[MyView alloc] initWithLabelText:text];
[self.view addSubview:myView];
[myView release];

text变量是myView标签上使用的字符串。每次返回当前视图时,此text都会更改。但似乎viewDidAppear没有重新加载视图 - 而是在旧视图上加载一个新视图 - 所以我有两个标签相互叠加。

我尝试使用viewWillAppear但它没有任何区别。我也尝试使用[self.view setNeedsDisplay] - 没有帮助。我还尝试将myView作为实例变量,但它也没有帮助。

当我将其声明为实例变量时,显式删除视图的作用是什么:

- (void)viewDidDisappear:(BOOL)animated
{
    [_myView removeFromSuperview];
}

虽然有这种解决方法,但我想在返回时简单地重置视图。有谁知道怎么做?我很感激;)

2 个答案:

答案 0 :(得分:0)

每次都不要分配和初始化自定义子视图,只是第一次调用viewDidAppear。然后将其保留在属性中以供后续使用。

答案 1 :(得分:0)

可以考虑以下事项。

viewDidLoad - >分配并初始化子视图 viewDidAppear - >更新子视图 dealloc - >发布子视图。