NSIndexPath 인스턴스를 가질 수 있도록 UIButton을 하위 클래스로 구성했을 것입니다. 이렇게하면 UITableViewCell의 각 UIButton이 테이블보기에있는 위치를 "알 수"있습니다. 따라서 단추를 누를 때 NSIndexPath를 사용하여 새보기를 푸십시오. -didSelectRowAtIndexPath:
에서와 비슷합니다. 대신 다른보기를 사용하십시오 (예 : -didPressButtonAtIndexPath:
과 같은 설명 메서드 이름을 지정하십시오).
인터페이스 작성기를 사용하는 대신 UIButton 하위 클래스 자체에 메서드를 추가해야합니다.이 메서드는 뷰 컨트롤러에서 메서드를 호출합니다. 그런 다음 각 UIButton에 대해 UIControl 메서드 -addTarget:action:forControlEvents:
을 사용할 수 있습니다. UIButton에 컨트롤러 메서드를 호출하는 자체 메서드를 호출하게합니다.
- (void)didPressButton {
[controller didPressButtonAtIndexPath:myIndexPath];
}
:처럼 보이도록
-didPressButton
을 마지막으로
[button addTarget:button
action:@selector(didPressButton)
forControlEvents:UIControlEventTouchDown];
을 그리고, 구현 : 당신은 당신이 전화를 추가하는 각 버튼에 대한, 당신의 세포를 빌드 할 때 다음
// MyButton.h
@interface MyButton : UIButton {
NSIndexPath *myIndexPath;
MyViewController *viewController;
}
- (void)didPressButton;
@end
// MyViewController.h
@interface MyViewController { }
- (void)didPressButtonAtIndexPath:(NSIndexPath *)indexPath;
@end
: 귀하의 솔루션과 같이 보일 수 있습니다
출처
2010-03-16 04:15:57
Tim
감사합니다. 나는 내 자신의 질문에 막 대답하려고했다. 나는 또 다른 접근법을 취했다. 이 질문을하기 전에 이미지와 레이블을 추가하기 위해 UITableViewCell의 하위 클래스를 만들었으므로 셀을 사용자 정의해야했습니다. 그래서 IB에서도 버튼을 추가했습니다. 내 코드에서 하위 클래스 셀인 IBACtion을 추가하고 해당 동작을 해당 버튼의 "터치 다운"이벤트와 연결합니다. 내가 NSLog에서 이벤트를 겟트하고 있다는 것을 알기 위해 무엇인가를 인쇄했음을 알고 있습니다. 내가보기에, 지금 어떤 버튼을 눌렀는지 알 수 없습니다. 나는 당신의 해결책이 이것을 해결하는 것 같아요. 권리? 문제는 내가 많이 이해하지 못한다는 것입니다. 예를 들어 @selector – gvalero87
BTW는 답장을 보내 주셔서 감사합니다. 정말 좋습니다. 그것은 단지 이것에서 정말로 새로운 것입니다. 모든 일주일에 프로그래밍에 관련된 모든 맥 : S ... 지금은 그 단추를 누르면 새로운 모달보기를 얻는 방법을 알아 내려고하고 있습니다. – gvalero87
안녕하세요, 제 질문에 답해주세요. 당신이 내 세포를 만들 때해야한다고 (코드 2). 해당 뷰를 보유하고있는 xib 파일에 연결된 tableviewcell 하위 클래스가 있으므로 해당 뷰에 단추를 추가하고 tableViewcell 하위 클래스의 IBOutle에 연결했습니다. 그럼,이 셀을 만들 때 무엇을 의미합니까? – gvalero87