0

假设您有 2 个 tableView 控制器的子类。

它们在页眉底部的顶部都有相同的页眉和页脚视图。他们都实现了拉动刷新。

他们都有一些共同的特点。

唯一不同的是,一个是显示整个商家,另一个是只显示您收藏的商家。

看起来他们都需要有相同的父类,而不同的是在子类上解决。无论如何,差异很小。

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

嗯……那会怎样?除了容器 UIViewController,每个控制器都应该查看内容的完整视图。那么我们应该显示哪个视图呢?孩子还是超类?子视图应该添加它的超类子视图吗?

有人试过吗?

网络上有任何使用这种方法的代码示例吗?

4

1 回答 1

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]

您只是有选择地为该视图控制器提供要显示的业务对象。

于 2012-10-16T07:02:26.547 回答