2012-05-24 6 views
0

Im здание приложение iphone через xcode и объектив c. для целей ios5.0 min. Я создал пользовательский uitablecell и im загрузил это в таблицу в диспетчере представлений, никаких проблем. эта ячейка содержит кнопку. когда пользователь удаляет эту кнопку в любой из ячеек, я хочу, чтобы она вызывала ту же функцию в контроллере представления. То, как я это делал в прошлом, - это сделать владелец файла настраиваемой ячейки рассматриваемым контроллером view, а затем просто управлять, перетащить кнопку в контроллер вида и разместить там функцию ibaction. всегда работает без проблем. до сих пор.uibutton в пределах пользовательского uitablecell

- [__ NSCFString loadMerchant]: непризнанные селектор направлен например 0x8689e50 2012-05-24 09: 56: 14,630 [3217: 16103] * Согласующий приложение из-за неперехваченного исключением 'NSInvalidArgumentException', причина: '- [__ NSCFString loadMerchant]: непризнанные селектор направлен например 0x8689e50'

это им ошибка при получении. Я уверен, что функция не случайно связана с неправильной кнопкой, что функция также не находится в cell.m по ошибке и любые другие простые ошибки, о которых я могу думать.

Кто-нибудь знает, как правильно выполнить то, что я пытаюсь сделать?

редактировать: пользовательские ячейки

@interface TimelineCell : UITableViewCell 


@property (weak, nonatomic) IBOutlet UIButton *nameButton; 


@end 


@implementation TimelineCell 


@synthesize nameButton; 

- (id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier { 
    self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]; 
    if (self) { 
     // Initialization code 
    } 
    return self; } 

- (void)setSelected:(BOOL)selected animated:(BOOL)animated { 
    [super setSelected:selected animated:animated]; 

    // Configure the view for the selected state } 

@end 

ниже является ViewController

- (IBAction)loadMerchant:(id)sender; 

- (IBAction)loadMerchant:(id)sender { } 

и вот это. авария происходит, когда когда-либо нажата кнопка с превышением ошибки

Редактировать: удаление ссылки в файле nib и просто добавление действия к кнопке, похоже, решает проблему, но id still liek, чтобы узнать причину этого, если кто-либо может пролить некоторый свет на который был бы оценен

сделал в cellForRowAtIndexPath

UIButton *b = (UIButton*)[cell viewWithTag:1]; 
[b addTarget:self action:@selector(loadMerchant:) forControlEvents:UIControlEventTouchUpInside]; 
+0

Вы можете показать код? – rishi

+0

Извините, отредактированный для некоторого кода. но его основные понятия не понимают, почему его неудача. когда одни и те же ahs работали столько раз до – glogic

+0

, откуда вы вызываете метод loadMerchant, можете ли вы добавить этот код? – rishi

ответ

0

, что я в конечном итоге делает была мечения кнопку в файле кончика пера, а затем в коде добавления цели через код в ячейку настроить в cellForRowAtIndexPath.

UIButton *b = (UIButton*)[cell viewWithTag:1]; 
[b addTarget:self action:@selector(loadMerchant:) forControlEvents:UIControlEventTouchUpInside]; 

В то время как это решает проблему, я по-прежнему не уверен, почему ссылка, сделанная через IB, не была в первую очередь.

+0

Я считаю, что вы можете использовать Interface Builder для решения этой проблемы, если вы не подключаетесь к «Владелец файлов», а вместо этого подключаетесь к настраиваемому объекту. – hatunike

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