2011-04-14 6 views
4

이 계층의 어딘가에 TableView이라는 콘센트가있는 UITableView가 있으므로 사용자 정의 계층 구조 뷰를 만들었으므로 백엔드 코드에서 연결할 수 있습니다.UITableView 선택 이벤트가 Monotouch에서 변경되었습니다

목록의 항목을 선택했지만 새보기를 루트 viewcontroller의보기 스택에 밀어 넣고 싶지만 UITableView에서 관련 이벤트를 찾을 수 없습니다.

모든 컨트롤은 .XIB 내가 엉뚱한 곳에서 찾고

을 파일에 인터페이스 빌더를 사용하여 정의 된?

미리 감사드립니다.

+0

당신은 "그 목록의 항목이 선택되었습니다"라고 말했습니다. 어떤 목록이 있니? 그리고 어떤 아이템? 이 점을 분명히하십시오. – Ravin

+0

질문은, 어떻게 모노 토치 UITableView의 항목이 선택되었는지 들어 봅니다. 시간 내 주셔서 감사합니다. –

답변

11

예, 잘못된 장소를보고 있습니다. UITableView의 "이벤트"를 사용하려면 UITableViewSource을 구현하고이를 테이블 뷰에 할당해야합니다. 가장 일반적인 방법은 중첩 된 클래스로 테이블 뷰의 컨트롤러에해야 할 일 :

myTableView.Source = new MyTableSource(); 

참고 UITableViewSource 클래스가 : 그런 다음 테이블 뷰의 소스 속성에 MyTableSource 클래스를 설정

private class MyTableSource : UITableViewSource 
{ 

    public override void RowSelected(UITableView tableView, NSIndexPath indexPath) 
    { 

     // Do something for the selected row 

    } 

    // Override both RowsInSection and GetCell methods! 

} 

Objective-C에는 존재하지 않습니다. UITableViewDataSource와 UITableViewDelegate의 메소드를 모두 호스트하는 MonoTouch 클래스 일 뿐이므로 훨씬 간단합니다.

+0

분명한 답변을 보내 주셔서 감사합니다. 이유는 내가 혼란스러워, 내가 UITableViewSource 대신에 UITableViewDataSource를 사용했다는 것입니다. (내 예제 ​​코드에서 나타나지 않았 음) –

+0

도와 드릴 수있어서 기쁩니다. UITableViewDataSource와 UITableViewDelegate를 모두 사용할 수 있습니다. 더 많은 코드가 필요합니다. –

+0

@DimitrisTavlikos : 고마워요! 나는 왜 내가 테이블 자체 또는 대리자 클래스에서 이벤트를 얻지 못하고 있는지 알아 내려고 노력하면서 머리카락을 꺼내고있었습니다. 하지만 테이블과 테이블 위임 클래스가 작동하지 않는 이유는 무엇입니까? –

1

RowSelected 이벤트는 UITableViewSource에서 발생합니다.

관련 문제