UIView无法从不同的方法访问

时间:2012-11-04 02:12:53

标签: objective-c ios uiview

我在uiviewcontroller的头文件中声明了一个uiview,如下所示:

@property (strong, nonatomic) UIView *loadLoading;

并在viewdidload中启动它:

loadLoading = [[UIView alloc] initWithFrame:self.view.bounds];
loadLoading.backgroundColor = [UIColor blueColor];
[self.view addSubView:loadLoading];

这很好用。但在我的程序的另一点,我想删除此子视图。但出于某种原因,它并没有被删除。

NSLog(@"%@",loadLoading.backgroundColor);
[loadLoading removeFromSuperview];

(我知道它到达那一点并且loadLoading是可访问的,因为日志确实有效。

3 个答案:

答案 0 :(得分:0)

如果你得到NSLog(@"%@",loadLoading.backgroundColor);工作。

然后这段代码[self.loadLoading removeFromSuperview];应该有用,否则会有一些奇怪的错误。

这是另一种方法: 将视图添加到parentView时,将视图添加到视图中。

loadLoading = [[UIView alloc] initWithFrame:self.view.bounds];
[loadLoading setTag:7];

使用该标记将其从parentView中删除。

[[self.view viewWithTag:7] removeFromSuperView];

答案 1 :(得分:0)

发现了这个问题。

我没有在我的问题中提供足够的细节。我从notificationcenter调用此方法,该方法在不同的线程上加载。所以我必须首先做performSelectorOnMainThread工作

答案 2 :(得分:-1)

尝试:

[self.loadLoading removeFromSuperview];