5

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

随着. tableHeaderView_ 因此,我很好奇创建一个子类并将其设置为my是否UITableViewController有意义?如果这样做了,我会更多地分离关注点,并且可以在我的新“UIViewController”中容纳几乎所有的逻辑我猜我仍然需要通过两个视图控制器之间的委托来路由一些通信。UIViewContollerviewtableHeaderViewUITableViewController

从架构的角度来看,这有意义吗?还是我应该继续使用现有UITableViewController的所有逻辑?

** 编辑 **

例如,这段代码放在我的UITableViewController

- (void)addHeader
{
    myCustomHeaderViewController *hvc = [[myCustomHeaderViewController alloc] init];
    //Assume the view for hvc is set up w/re to sizing, etc.
    self.tableView.tableHeaderView = hvc.view
}
4

1 回答 1

1

是的,你可以这样做,从 iOS5 开始你有 Containment View Controllers,所以在一个 View Controller 中你可以添加几个可以一起工作的子 View Controller。

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

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

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

创建自定义容器视图控制器

于 2013-09-18T15:40:48.147 回答