Функция не вызывается при нажатии кнопки - PullRequest
0 голосов
/ 02 июня 2011

я создал UIBUtton

editButton = [[UIButton alloc]initWithFrame:CGRectMake(width, -4, 30, 30)];
        [editButton setImage:[UIImage imageNamed:@"DeleteButton.jpg"] forState:UIControlStateNormal];
        [editButton addTarget:self action:@selector(deleteObjectViewImage:) forControlEvents:UIControlEventTouchUpInside];
        editButton.hidden = YES;
        [editButton setTag:tag];
        [backView addSubview:editButton];

Но элемент управления не переходит к своему определению, где я проверяю, дает ли кнопка свое значение тега при нажатии.

-

(void)deleteObjectViewImage
{

    NSInteger index = editButton.tag;
    editButton.hidden = YES;
}

Может кто-нибудь сказать мне, почему это не работает, пожалуйста.

Ответы [ 4 ]

1 голос
/ 02 июня 2011

Используйте эту строку вместо строки в вашем коде (двоеточие удаляется после имени функции),

 [editButton addTarget:self action:@selector(deleteObjectViewImage) forControlEvents:UIControlEventTouchUpInside];
1 голос
/ 02 июня 2011
[editButton addTarget:self action:@selector(deleteObjectViewImage:) forControlEvents:UIControlEventTouchUpInside];

ожидает, что функция deleteObjectViewImage: будет иметь один аргумент.Но определение функции не имеет.

ОБНОВЛЕНИЕ:

-(void)deleteObjectViewImage: (id) sender
    {
    UIButton *clickedButton = (UIButton *) sender;
        NSInteger index = clickedButton.tag;
        editButton.hidden = YES;
    }

и использование

[editButton addTarget:self action:@selector(deleteObjectViewImage:) forControlEvents:UIControlEventTouchUpInside];
0 голосов
/ 02 июня 2011

Попробуйте это

editButton = [[UIButton alloc]initWithFrame:CGRectMake(width, -4, 30, 30)];
[editButton setImage:[UIImage imageNamed:@"DeleteButton.jpg"] forState:UIControlStateNormal];
[editButton addTarget:self action:@selector(deleteObjectViewImage:) forControlEvents:UIControlEventTouchUpInside];
editButton.hidden = YES;
[editButton setTag:tag];
[backView addSubview:editButton];


- (void)deleteObjectViewImage:(id)sender
{

    UIButton *button = (UIButton *)sender;
    NSLog(@"Button tag is %d",button.tag);
    button.hidden = YES;
}
0 голосов
/ 02 июня 2011

Для получения значения тега необходимо написать этот код в событии нажатия кнопки ...

 -(IBAction)deleteObjectViewImage:(id)sender
 {
      UIButton *btn = (UIButton *)sender;
      NSLog(@"%d",btn.tag);
 }

Не удалять двоеточие из

 [editButton addTarget:self action:@selector(deleteObjectViewImage:) forControlEvents:UIControlEventTouchUpInside];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...