Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
iPhone:从页面中删除对象_Iphone_Objective C - Fatal编程技术网

iPhone:从页面中删除对象

iPhone:从页面中删除对象,iphone,objective-c,Iphone,Objective C,我有一个UIView,它有一个我写的“display”方法。 在“显示”方法中,我有以下代码: 首先,创建一个主视图 UIView *contentView = ... 第二,创建大量对象,如下所示: ObjectView* objectView = ... (ObjectView is also a UIView) [contentView addSubview:objectView]; [[contentView subviews] makeObjectsPerformSelector

我有一个UIView,它有一个我写的“display”方法。 在“显示”方法中,我有以下代码: 首先,创建一个主视图

UIView *contentView = ...
第二,创建大量对象,如下所示:

ObjectView* objectView = ... (ObjectView is also a UIView)
[contentView addSubview:objectView];
[[contentView subviews] makeObjectsPerformSelector:@selector(removeFromSuperview)];
第三,将所有这些对象添加到contentView,如下所示:

ObjectView* objectView = ... (ObjectView is also a UIView)
[contentView addSubview:objectView];
[[contentView subviews] makeObjectsPerformSelector:@selector(removeFromSuperview)];
最后,我将contentView添加到self中

最初,“display”方法是从“initWithFrame”调用的,它按照我的要求显示。我还有一个视图,单击该视图时还调用“display”方法,这次它应该显示新内容。问题是新内容显示在原始内容上,而原始内容不会被删除。 我做错了什么?
谢谢

您需要删除旧的子视图,如下所示:

ObjectView* objectView = ... (ObjectView is also a UIView)
[contentView addSubview:objectView];
[[contentView subviews] makeObjectsPerformSelector:@selector(removeFromSuperview)];

在添加新对象之前,请先删除或从self中删除
contentView

您应该将这些对象设置为viewController的属性,以便您可以随时根据需要对其进行设置: 在标题中:

ObjectView *objectview;
@property (nonatomic, retain) ObjectView *objectview;
整型

@synthesize objectview;
然后,您可以在任意位置设置objectview的属性

objectview.label.text = @"some text"; //just an example