使用标签关闭UIImageView

时间:2014-02-06 20:11:00

标签: ios uiimageview

我正在定义一个像这样的UIImageView:

UIImageView *backgroundView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"fondo1"]];

backgroundView.tag = 7;

然后在另一个方法中,我尝试使用以下方法关闭UIView,该方法是从按钮操作调用的:

-(void) closeSideTasks {
    for (UIImageView *subview in [self.view subviews]) {
        if (subview.tag == 7) {
            [subview removeFromSuperview];
        }
    }
}

但这是一个例外:

Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[ToDoItemsTableViewController closeSideTasks:]: unrecognized selector sent to instance

我的错误在哪里?

3 个答案:

答案 0 :(得分:1)

正如错误消息明白告诉您的那样,错误是您的按钮正在发送closeSideTasks:,即使该方法名为closeSideTasks(没有冒号)。

答案 1 :(得分:1)

看起来你正在调用带有参数的方法(注意closeSideTasks:分号),编译器希望你接收一个参数,但是找不到任何方法。您定义的方法不接受参数。

如果这是您正在使用按钮操作的选择器,请尝试将其定义为 - (IBaction)closesidetasks:(id)sender。 并实现它。

答案 2 :(得分:0)

改为使用

-(void) closeSideTasks {
                UIImageView * backgroundView = (UIImageView *)[self.view viewWithTag:7];
                [backgroundView removeFromSuperview];
    }