2014-09-22 4 views
0

У меня есть простой UITableView. Все работает отлично на iOS 7, но на iOS 8 нет. В основном у меня есть пользовательский UITableViewCell, который содержит текстовые ярлыки, кнопки, изображения. Когда я нажимаю кнопку внутри ячейки таблицы, я получаю ошибку. Вот код:UITableView iOS 8 Xcode 6.0.1 Unrecognized Selector Send To Instance

-(IBAction)addToFavorites:(id)sender { 

    UIButton *editButton = (UIButton*)sender; 
    GetMoreTableViewCell *editCell = (GetMoreTableViewCell*)[[[editButton superview] superview] superview]; 
    int editIndex = (int)[[_chapters indexPathForCell:editCell] row]; 

    [self readTopScorePlist]; 

    if([[[[_data valueForKey:key] valueForKey:[NSString stringWithFormat:@"%i",editIndex]] valueForKey:@"isDefault"] boolValue] == YES) { 
     [editCell.addButton setImage:[UIImage imageNamed:@"fav_0.png"] forState:UIControlStateNormal]; 
     [self saveToPlist:NO sender:sender]; 
     NSLog(@"NEW %@",[[[_data valueForKey:key] valueForKey:[NSString stringWithFormat:@"%i",editIndex]] valueForKey:@"isDefault"]); 
    } 
    else { 
     [editCell.addButton setImage:[UIImage imageNamed:@"fav_1.png"] forState:UIControlStateNormal]; 
     [self saveToPlist:YES sender:sender]; 
     NSLog(@"NEW %@",[[[_data valueForKey:key] valueForKey:[NSString stringWithFormat:@"%i",editIndex]] valueForKey:@"isDefault"]); 
    } 
} 

Метод вызывается тем не менее я получаю исключение здесь: [editCell.addButton setImage:[UIImage imageNamed:@"fav_0.png"] forState:UIControlStateNormal];

И expection, что я получаю это:

2014-09-22 10:08:28.223 HandyHoch[657:252982] -[UITableViewWrapperView addButton]: unrecognized selector sent to instance 0x17e9fd80 

Я предполагаю, что AddButton не может быть, но кто должен делать это в iOS 8? Заранее спасибо.

The UITableViewCell custom class: 

@implementation GetMoreTableViewCell 

@synthesize ttitle, cellImage, cellBackground, changeButton, deleteButton,addButton; 

-(id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier 
{ 
    self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]; 
    if(self) { 

     ttitle.textColor = [UIColor whiteColor]; 
     ttitle.numberOfLines = 30; 
     ttitle.lineBreakMode = NSLineBreakByCharWrapping; 
     ttitle.textAlignment = NSTextAlignmentCenter; 
     [self.contentView addSubview:ttitle]; 
     [self.contentView addSubview:addButton]; 
     [self setAutoresizesSubviews:YES]; 

    } 
    return self; 
} 

@end 
+0

Пожалуйста, разместите код из класса 'GetMoreTableViewCell'. – rebello95

+0

Я отредактировал мое сообщение –

ответ

0

кажется, что иерархия мнение изменилось в прошивкой 8, так (GetMoreTableViewCell*)[[[editButton superview] superview] superview]; возвращает другую точку зрения. Самое простое решение - изменить количество вызовов супервизора для iOS 8. Более надежным решением будет подключение к GetMoreTableViewCell.

+0

Да, я это понял :) теперь работает как шарм –

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