我正在定义一个像这样的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
我的错误在哪里?
答案 0 :(得分:1)
正如错误消息明白告诉您的那样,错误是您的按钮正在发送closeSideTasks:
,即使该方法名为closeSideTasks
(没有冒号)。
答案 1 :(得分:1)
看起来你正在调用带有参数的方法(注意closeSideTasks:分号),编译器希望你接收一个参数,但是找不到任何方法。您定义的方法不接受参数。
如果这是您正在使用按钮操作的选择器,请尝试将其定义为 - (IBaction)closesidetasks:(id)sender。 并实现它。
答案 2 :(得分:0)
改为使用
-(void) closeSideTasks {
UIImageView * backgroundView = (UIImageView *)[self.view viewWithTag:7];
[backgroundView removeFromSuperview];
}