2012-10-16 50 views
0

假設你有2個tableView控制器的子類。繼承UIViewController的子類是否是一種好習慣?

它們在標題底部的頂部都有相同的頁眉和頁腳視圖。他們都實施拉動刷新。

它們都有一些共同的特徵。

唯一不同的是一個用於顯示整個業務,另一個用於顯示只有你書籤的企業。

看起來他們都需要具有相同的父類,並且不同的子類在子類上得到了解決。反正差異很小。

我想父母有它自己的XIB,孩子們有它自己的XIB。

嗯......這會如何解決?除了容器UIViewController之外,每個控制器都應該查看內容的全視圖。我們應該展示哪個視圖?孩子還是超類?子視圖應該添加它的超類子視圖嗎?

任何人都曾試過嗎?

使用此方法的網絡上的任何代碼示例?

回答

1

聽起來像是基於您解釋的業務邏輯,除了您要呈現的數據列表之外,一切都是共同的。你可以在你的UITableViewController子類暴露的屬性來設置你的tableview呈現的業務對象:

@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。如果我真的想要去分類路線呢? –

相關問題