2015-02-06 2 views
0

나는 동일한 사용자 정의 셀을 사용하여 모두 UITableView를 사용하는 여러 개의보기 컨트롤러가 있습니다. UITableView Datasource 메소드 역시 (라인에) 동일합니다. 모든 변경 사항은 데이터 소스 자체 (테이블 뷰가로드되는 배열)입니다. 내가보기에 5 개의 뷰 컨트롤러에 대해 똑같은 코드를 복사해야하는 것은 다소 무리한 것처럼 보입니다 (나쁜 코딩 방법은 말할 것도 없습니다!).UITableView가있는 기본 ViewController 클래스를 만드는 방법은 무엇입니까?

따라서 UIViewController를 확장하는 기본 (또는 부모) 뷰 컨트롤러를 만들고이 기본 뷰 컨트롤러에서 모든 다음 (자식) 컨트롤러를 상속 받도록했습니다.

내 문제는 : 내 기본보기 컨트롤러를 UITableView 속성이 있어야하며 또한 DataSource 메서드가 포함되어 있습니다. 자식보기 컨트롤러 내에서 자신의 데이터 소스에 대한 부모 클래스를 참조하도록 UITableViews를 가져올 수 없습니다.

완전히 잘못된 트랙에 있습니까? 이 문제에 대한 더 나은 접근법이 있습니까? 어떤 도움이라도 대단히 감사합니다!

답변

0

데이터 소스에 대한 속성을 추가 할 컨트롤러가 하나뿐입니다.

컨트롤러에 연결하거나 만들 때 데이터 소스 속성을 설정할 때.

데이터 소스 배열을 제외한 모든 코드가 동일하면 하나의 컨트롤러 만 있으면됩니다.

xcode에서 새 소스 파일을 추가하십시오. 예 :. MyDataViewerControllerUITableViewController을 상속합니다. 생성 된 해당 파일에서

, 형태의 속성을 추가 : 스토리 보드에서보기 컨트롤러 중 하나에

@property NSArray *dataSource; 

클릭하고 클래스 속성 관리자 탭을 클릭합니다. 클래스를 MyDataViewerController으로 설정하십시오.

이제이 컨트롤러를 사용하여 데이터를 표시 할 수 있습니다. 다른 모든 파일은 삭제할 수 있습니다.

데이터를 포함하는 배열로 가정했습니다. 이것을 사용하는 것과 바꾸십시오.

어딘가에서이 컨트롤러에 연결한다고 가정하면 prepareForSegue 함수에서 속성을 설정하십시오.

+0

감사합니다. 나는 이것을 간과했다고 믿을 수 없다. 나는 그것을 여러 번 전에 해왔다. 나는 평소의 단편보다는 이러한 관점으로 전환하기 위해 제 3 자 라이브러리를 사용했기 때문에 아마도 그것을 간과 한 것일 것입니다. 다시 한 번 감사드립니다! – vinn

관련 문제