0

我有一个复杂的 UIViewController (和相关视图)。它由几个具有自己的视图控制器的子视图组成。(例如少数 UITableViewController 子类、自定义 ViewContorllers 等)。

您是否认为将子视图控制器的引用存储在根视图(不是视图控制器类)中是一个不错的决定。我现在正在像这样在根视图类中构建视图结构(添加视图/视图控制器的少数方法之一):

- (void)addCaroucel
{
  _caroucelViewController = [[CaroucelTableViewController alloc] init];
  _caroucelViewController.caroucelView.delegate = self;
  [self addSubview:_caroucelViewController.caroucelView];
}

我知道控制器应该在主控制器中,但同时这就像视图的内部实现,我不想用主视图控制器公开它。而且我认为视图层次结构应该在视图类中构建,而不是在视图控制器中。

你有没有更好的解决方案?

4

1 回答 1

0

我认为更好的解决方案是:

一屏一个 ViewController。所有的 tableView、按钮、视图等……都有一个共同的委托 - 这个 viewController。不要尝试为某些控制器分离您的逻辑。您尝试添加另一个视图控制器,因为您已经分开了。

在我看来,我也知道两种不好的方法,在这种情况下它们并不那么简单:

  1. 您可以创建单例类作为此控制器的管理器。它将处理来自该控制器的所有逻辑,但不创建“上帝”类。
  2. 所有控制器都是分开的,并通过通知机制观察/发布消息。
于 2013-07-19T10:17:40.520 回答