【问题标题】:Several UIViewControllers and UIViews relations几个 UIViewControllers 和 UIViews 的关系
【发布时间】:2013-07-19 09:38:59
【问题描述】:

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

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

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

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

你有什么更好的解决方案吗?

【问题讨论】:

标签: ios objective-c cocoa-touch uikit


【解决方案1】:

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

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

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

  1. 您可以创建单例类作为此控制器的管理器。它将处理来自该控制器的所有逻辑,但不会创建“上帝”类。
  2. 所有控制器都是分开的,并通过Notification机制观察/发布消息。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-12-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-23
    • 1970-01-01
    • 2013-08-29
    相关资源
    最近更新 更多