2011-05-13 2 views
0

Apple의 샘플 코드를 사용하여 "액세서리"테이블에 맞춤 액세서리 이미지를 사용했습니다. 테이블은 이미지를 올바르게 렌더링하지만 모든 이미지를 클릭하면 accessoryButtonTappedForRowWithIndexPath 메서드로 이동합니다. 어떤 이유로 indexPath가 nil이 아니기 때문에 아무 것도 발생하지 않습니다.iOS indexPath가 nil입니다 (맞춤 액세서리 이미지)

- (void)accessoryButtonTapped:(id)sender event:(id)event 
{ 
    NSSet *touches = [event allTouches]; 
    UITouch *touch = [touches anyObject]; 
    CGPoint currentTouchPosition = [touch locationInView:self.tableView]; 
    NSIndexPath *indexPath = [self.tableView indexPathForRowAtPoint: currentTouchPosition]; 
    if (indexPath != nil) 
    { 
     [self tableView: self.tableView accessoryButtonTappedForRowWithIndexPath: indexPath]; 
    } 
} 

답변

1

왜 당신이 당신 UITableViewDelegatetableView:accessoryButtonTappedForRowWithIndexPath:을 사용할 수 없습니다 다음 indexPath를 확인이 방법을 참조하십시오?

+0

(Apple의 "Accessory"에 대한 샘플 코드에서 볼 수있는 것처럼) 사용자 지정 액세서리 이미지를 사용할 수 있도록이 방법을 사용해야합니다. 그 샘플 코드에서 Apple은 tableView ivar를 가진 부모 클래스로 UITableViewController를 사용합니다. 그리고 tableView ivar가없는 UIViewController 클래스를 사용하고 있습니다. 내 UIViewController 클래스에 대한 tableView ivar을 만들 수 있습니까? –

+1

예, Interface Builder에서 테이블을 만들면 IBOutlet을 만드십시오. 코드에서 생성하는 경우 헤더 파일에 ivar을 선언하십시오. – edc1591