2012-05-24 4 views
0

xcode 및 목표 c를 통해 아이폰 앱을 구축 중입니다. iOS5.0 분 타겟을위한 건물입니다. 사용자 지정 Uuitablecell을 만들었으며 뷰 컨트롤러의 테이블 내에 이것을로드하는 데 문제가 없습니다. 이 셀에는 버튼이 있습니다. 사용자가 셀 중 하나에서이 단추를 누르면 뷰 컨트롤러 내에서 동일한 함수를 호출하려고합니다. 내가 과거에이 작업을 수행 한 방식은 문제의 viewcontroller를 사용자 정의 셀의 파일 소유자로 만든 다음 버튼을 뷰 컨트롤러로 드래그하고 ibaction 함수를 배치하는 것입니다. 항상 문제없이 작동합니다. 지금까지.사용자 정의 uitablecell 내의 uibutton

는 - [__ NSCFString loadMerchant는 :] : 56 : 미정 선택기 2012-05-24 09 인스턴스 0x8689e50 전송 14.630 [3217 : 16,103] * 때문에 캐치되지 않는 예외 '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가 있습니다. 그 약간의 빛이 cellForRowAtIndexPath 내가 nib 파일 내에서 버튼을 태그 한 일을 결국 무엇을

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

몇 가지 코드를 표시 할 수 있습니까? – rishi

+0

죄송합니다 일부 코드가 편집되었습니다. 그러나 그것의 아주 기본적인 dont는 왜 실패하는지 이해하지 않는다. 같은 아아가 loadMerchant 메소드를 호출하는 곳에서 – glogic

+0

전에 여러 번 작업 한 경우 해당 코드를 추가 할 수 있습니까? – rishi

답변

0

내에서 셀이 설정에서 다음 코드에 코드를 통해 대상을 추가

을 감상 할 수 있나 cellForRowAtIndexPath에 있습니다.

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

이것이 문제를 해결하는 동안 나는 IB를 통해 만들어진 링크가 처음에는 실패한 이유에 대해 여전히 확신 할 수 없습니다.

+0

필자는 Interface Builder를 사용하여 "파일 소유자"에 연결하지 않고 대신 사용자 정의 개체에 연결하는 경우이 문제를 해결할 수 있다고 생각합니다. – hatunike

관련 문제