2013-07-29 4 views
0

Я пытаюсь изменить название кнопки в динамической ячейке, если эта кнопка была нажата, но я застрял:изменить название кнопки в правильной ячейке

у меня есть:

- (IBAction)buttonWasPressed:(id)sender 
{ 
    static NSString *CellIdentifier = @"Cell"; 

    NSIndexPath *indexPath = 
    [self.tableView 
    indexPathForCell:(UITableViewCell *)[[sender superview] superview]]; 
    NSUInteger row = indexPath.row; 
    NSLog(@"row::%d",row); 
    ResultsCell *cell = [self.tableView dequeueReusableCellWithIdentifier:CellIdentifier cellForRowAtIndexPath:indexPath]; 

    [cell.favoriteButton setTitle:@"favorited" forState:UIControlStateNormal]; 

} 

, и он работает до моего NSLog(@"row::%d",row);, но я не уверен, как правильно получить вторую часть? Какие-либо предложения?

ответ

0

Вот что такое «состояние» кнопки. Или даже состояние ячейки. Просто потому, что там может быть много кнопок и различных названий для них, и вы можете настроить каждую кнопку, как это

[yourButton setTitle:@"Add to favourite" forState:UIControlStateDefault]; 
[yourButton setTitle:@"Favourite" forState:UIControlStateSelected]; 

Тогда просто установить необходимо состояние:

- (IBAction)buttonWasPressed:(UIButton*)sender { 
    sender.selected = !sender.selected; // Toggle "selected" state 
} 
+0

Мне нравится, где это происходит, но что выбрано, предположим быть? – BluGeni

0

попробовать что-то вроде этого:

UIButton *btn = (UIButton *)sender; 
[btn setTitle:@"favorited" forState:UIControlStateNormal]; 

Ссылка на кнопку, которая была нажата посылается в ваш метод. Вам просто нужно использовать его!

+0

- (IBAction) buttonWasPressed: (UIButton *) sender {sender.title = @ "favorite"} – Injectios

Смежные вопросы