2012-10-16 3 views
0

tableView 컨트롤러의 하위 클래스가 2 개 있다고 가정 해 보겠습니다.UIViewController의 하위 클래스를 하위 클래스로 분류하는 것이 좋습니다.

둘 다 머리글의 맨 위에 동일한 머리글과 바닥 글보기가 있습니다. 둘 다 새로 고치기 위해 끌어 오기를 구현합니다.

둘 다 몇 가지 공통된 기능이 있습니다.

유일한 차이점은 전체 비즈니스를 표시하는 것이고 다른 하나는 북마크 한 비즈니스를 표시하는 것입니다.

둘 다 같은 부모 클래스가 있어야하고 다른 클래스가 자식 클래스에서 확인되는 것처럼 보입니다. 어쨌든 그 차이는 미미합니다.

나는 부모가 자신의 XIB를 가지고 있다고 가정하고, 아이들은 자신의 XIB를 가지고있다.

음 ... 어떻게 될까요? 컨테이너 UIViewController를 제외하고는 각 컨트롤러가 콘텐츠의 전체보기를보아야합니다. 그래서 우리는 어떤 시각을 보여야합니까? 아이 또는 슈퍼 클래스? 하위보기에서 수퍼 클래스 하위보기를 추가해야합니까?

누구나 시도해 보셨습니까?

웹에서이 접근법을 사용하는 코드 샘플이 있습니까?

답변

1

당신이 설명하는 비즈니스 로직을 기반으로, 발표하는 데이터 목록을 제외한 모든 것이 공통된 것처럼 들립니다. 당신은 당신의 tableview가 제시 비즈니스 오브젝트를 설정하기 위해 UITableViewController 서브 클래스에 속성을 노출 수 :

@interface JTBusinessesTableViewController : UITableViewController 

@property (nonatomic, strong) NSArray *businesses; 

@end 

이 클래스는 비즈니스 오브젝트 설정합니다 인스턴스화 코드 : 모두 표시

JTBusinessesTableViewController *businessListings; //Instantiate from XIB or Storyboard 
businessListings.businesses = [self bookmarkedBusinesses]; 

[self.navigationController pushViewController:businessListings animated:YES] 

코드를 비즈니스가 크게 다르지 않을 것입니다 :

JTBusinessesTableViewController *businessListings; //Instantiate from XIB or Storyboard 
businessListings.businesses = [self allBusinesses]; // Here we assign all of them 

[self.navigationController pushViewController:businessListings animated:YES] 

당신은 단지이보기 컨트롤러, 표시 할 비즈니스 개체 .

+0

멋진데. +1. 서브 클래 싱 경로를 실제로 가고 싶다면 어떨까요? –

관련 문제