使用UIViewController进行UITableView tableHeaderView

时间:2013-09-18 15:34:39

标签: objective-c design-patterns uitableview

我的问题主要是建筑性质。我使用UITableViewController来显示内容列表。没什么大不了的,很标准。但是,tableHeaderView包含大量功能。有一些点击目标,它会动画,并且显示会根据用户交互而变化。目前,我有一个自定义子类UIView处理大部分显示逻辑,并通过委托协议轻击到UITableViewController执行。

随着更多功能添加到tableHeaderView,我觉得我的UITableViewController变得有点混乱和漫长。因此,我很好奇是否有必要创建一个子类UIViewContoller并将其view设置为tableHeaderView的{​​{1}}?如果这样做了,我会更多地分开关注点并且可以容纳我新的`UIViewController'中的几乎所有逻辑我猜我仍然需要通过两个viewControllers之间的委托路由一些通信。

从架构角度来看,这是否有意义?或者我应该继续使用现有的UITableViewController来表示所有逻辑?

**编辑**

例如,当放入我的UITableViewController

时,此代码是否有意义
UITableViewController

1 个答案:

答案 0 :(得分:1)

是的,你可以这样做,从iOS5开始你有Containment View Controllers,所以在一个视图控制器中你可以添加几个可以协同工作的子视图控制器。

您可以将标题视图添加为UIViewController,将表视图作为UITableViewController添加到单独的视图控制器中,如下所示:

- (void) addViewController: (UIViewController*)content;
{
   [self addChildViewController:content];                 
   content.view.frame = [self frameForController];
   [self.view addSubview:self.currentClientView];
}

在这里,您可以找到如何使用它们的指南:

Creating Custom Container View Controllers