在多个视图控制器中重用一个容器视图

re-using one container view in multiple view controllers

我在我的主视图控制器中设置了一个容器视图。我通过界面生成器配置了它。主视图控制器包含容器视图,我有自定义 class(派生自 UIViewController)来处理容器视图控制器中的工作。我已经在容器视图中布置了所有小部件,并且一切正常。现在,我发现了一种情况,我想在不同的视图控制器中重复使用相同的代码。

所以我从以下开始验证代码是否被命中:

    iPad_Expansion_ContViewController *kaufer = [iPad_Expansion_ContViewController new];
    [gameController addChildViewController:kaufer];

    kaufer.view.frame = CGRectMake(100, 200, 500, 500);
    kaufer.view.backgroundColor = [UIColor blueColor];

    [gameController.view addSubview:kaufer.view];
    [gameController.view bringSubviewToFront:kaufer.view];

    [kaufer didMoveToParentViewController:gameController];

这确实创建了一个大蓝框;但是,如何加载通过界面生成器定义的 containerViewController 的内容?我想我需要类似下面的东西,但我不知道在哪里可以找到通过 Interface Builder 创建的 NIB 名称。

    iPad_Expansion_ContViewController *kaufer = [[iPad_Expansion_ContViewController alloc] initWithNibName:@"???????" bundle:[NSBundle mainBundle]];
    [gameController addChildViewController:kaufer];
    [kaufer didMoveToParentViewController:gameController];

从我所有的网络搜索来看,查找 NIB 名称似乎是微不足道且显而易见的。但我仍然遗漏了一些东西......我尝试使用故事板的名称;然而,kaufer 中的所有对象都为零,并且屏幕上没有显示任何视图。

好吧,这是一个非常艰难的下午。毕竟我并不疯狂(至少在这件事上没有):从 Xcode 6.4 开始,在情节提要中找到 .xib 名称 viewControllers 比以前的版本要困难几个数量级。这两个问题并没有完全解决问题,但提供了让我再次感动的主要线索:

Use initWithNibName with a storyboard

STORYBOARD - doesn't contain a view controller with identifier(khaliq 的回答)

事不宜迟,我在互联网上发布了以下(功能)代码片段:

    UIStoryboard *storyboard = self.storyboard;
    myCustomContViewController *kaufer = (myCustomContViewController *)[storyboard instantiateViewControllerWithIdentifier:@"shopper"];
    [mainController addChildViewController:kaufer];

    [mainController.view addSubview:kaufer.view];
    [mainController.view bringSubviewToFront:kaufer.view];

    [kaufer didMoveToParentViewController:mainController];