使用未声明的类型“UIContainerView”

Use of undeclared type ‘UIContainerView’

我正在使用 xcode 7,我有一个带有 UIContainerView

的故事板控制器

当我尝试为控制器创建出口时出现此错误 "Use of undeclared type UIContainerView"

这不是 xcode 7 的错误,因为 xcode 6

上也有同样的错误

我需要创建一个插座,因为当我切换分段控件时,我必须以编程方式更改容器的嵌入

这是一个错误,还是我不能为容器创建出口?图书馆里好像没有叫UIContainerView的东西,奇怪

UIContainerView 不是 class,所以您收到错误消息。而是使用 UIView。容器视图实际上是 Storyboard 中的一个概念,允许您执行类似的编程操作:

  1. 初始化第二个视图控制器
  2. 将其添加为子视图控制器
  3. 在相同框架的容器视图的位置添加其视图。

当您添加容器视图时,以上所有内容都会自动完成。 如果你想切换到不同的视图控制器,那么你将创建多个容器视图。根据 UISegmentedController 的 selectedIndex

显示和隐藏容器视图

没有这样的 class 叫做 UIContainerView。您需要创建 UIView 的出口并将其连接到您的容器视图。

您可以像这样切换容器视图的内容:

// Property
@property (nonatomic, weak) IBOutlet UIView *container;
@property (nonatomic, strong) UIViewController *first;
@property (nonatomic, strong) UIViewController *second;

// Method that removes first vc from view and shows second vc
// Assumes first and second properties already initialized
- (void)showSecondVC
{
  // Removes first view controller
  [self.first.view removeFromSuperview];
  [self.first willMoveToParentViewController:nil];
  [self.first removeFromParentViewController];

  // Shows second view controller
  [self addChildViewController:self.second];
  [self.second didMoveToParentViewController:self];
  self.second.view.frame = self.container.bounds;
  [self.container addSubview:self.second.view];      
}

这很令人困惑,因为 IB 将其标记为 UIContainerView,但它的类型实际上只是一个 UIView。