2012-07-16 4 views
1

우리 모두가 알다시피 코코아 터치의 테이블 뷰는 거기에있는 프레임 워크 요소 중에서 가장 눈에 띄는 부분 중 하나입니다. 편의상, 애플은 우리에게 테이블 뷰의 기능을 vc에 캡슐화하는 멋진 뷰 컨트롤러 클래스 인 UITableViewController을 주었다.Objective-C/iOS : 커스텀 뷰를위한 UITableViewController 서브 클래 싱하기

동시에 전체 화면을 차지하지 않고 테이블보기의 기능을 활용하고자하는 경우가 있습니다. 그러나 UITableViewController을 서브 클래 싱하여이를 수행 할 방법이없는 것으로 보입니다. 대신 테이블 뷰를 연결하고 UITableViewDelegateUITableViewDataSource에 수동으로 가입해야했습니다. UITableViewController을 하위 클래스로 만들면 내 앱이 화면 상에보기도 전에 충돌이 발생합니다 ...

내 질문에 뭔가가 있습니까? UITableViewController 하위 클래스를 만들 때 사용자 지정 테이블 뷰를 UITableViewController의 tableView 속성에 연결합니다. 내가해야 할 일이 있나요? 이 생성 및 테이블 뷰를 배치, (일반적으로, 자신에게) 위임 & 데이터 소스를 사귀는 테이블을 통해 뷰 컨트롤러에게 editing 속성을 전달하고 유용한 몇 가지 작업을 수행합니다

+1

일반적인 방법 (위임/데이터 원본 등)을 수행하는 방법을 배웁니다. 일단 당신이 그것을 해내면 꽤 쉽고 훨씬 유연합니다 - 좋은 기술을 가져야합니다. 어쨌든 ... 수업을 직접 작성 했나요? 아니면 xcode가 직접 생성 했습니까? – Dustin

+0

UITableViewController를 서브 클래스 화하지 마십시오. 당신에게 (그리고 대부분의 사람들이) 제공하지 않는 것을 할 필요가 있다면, 정기적 인 UITableView를 사용하고 직접 커스터마이징하십시오. 이것은 실제로 가장 단순한 경우에만 사용하기위한 것입니다. – Dima

+0

참조 : http://cocoawithlove.com/2009/03/recreating-uitableviewcontroller-to.html – petert

답변

8

UITableViewControllerUIViewController을 통해 작은 편의를 추가 보기가 나타날 때 UI 비트. (자세한 내용은 [the docs] [1]을 참조하십시오.)

위의 거의 전부가 A) 전체 화면이 아닌 테이블을 갖기 위해 변경해야하는 것 또는 B) 당신은 한 줄에 2 개씩 할 수 있으며, 어느 누구도 편의를 위해 UITableViewController만을 사용합니다. 이런 경우에는 자신의 UIViewController 하위 클래스를 사용하는 것이 좋습니다.

2

1 단계 : 서브 클래스 2 단계 UIViewController 대신

MyTableViewController : UIViewController <UITableViewDataSource, UITableViewDelegate> 

UITableViewController의 : 사용 인터페이스 빌더가있는 tableView 및 사용자 정의보기를 드롭

3 단계 : MyTableViewController 헤더 파일에 IBOutlet으로있는 tableView 속성을 선언 인터페이스 빌더의 tableView에 바인딩하십시오.

IMHO,이 프로세스를 사용하면 유연성이 향상됩니다.