12

我已经将我所有的表视图逻辑封装在一个链接到视图的 UITableViewController 上。这是使用故事板完成的。

我想将此逻辑和视图嵌入到另一个视图控制器/视图中(有点像标题信息,下面有一个可滚动的表格。)

我有以下组件: 链接到 UIView 的 CustomViewController (从情节提要拖入) CustomTableViewController 链接到 UITableView (从情节提要拖入)

本质上,我试图在 iOS 时钟应用程序中模仿秒表的场景

  • 对此的野兽方法是什么?
  • 它是如何以编程方式完成的?
  • 这可以以某种方式在情节提要上完成吗?

任何帮助将不胜感激。谢谢

4

1 回答 1

25

好的,想通了。这个解决方案是 iOS 5 特有的,因为这个功能是在那里添加的。此方法适用于情节提要。

设置:目的是在另一个控制器中托管一个视图控制器视图和逻辑。

  1. 由于没有内在的方式来引用故事板中的子视图控制器,我们需要给视图控制器一个名称。这可以通过在情节提要的控制器上填写“标识符”属性来完成。注意:确保您给控制器提供了标识符,而不是控制器视图。

  2. 实例化您要聚合的控制器。这可以从主机控制器完成。

    UIViewController *controller = [self.storyboard instantiateViewControllerWithIdentifier:@"ControllerIdentifier"];
    
  3. 将子控制器添加到父控制器

    [self addChildViewController: controller];
    
  4. 将子控制器视图添加到父控制器视图。请注意,如果您希望将子视图添加到的父控制器中有一个占位符视图,那么这就是您执行此操作的地方。在这里,我在父控制器中添加了一个名为 stage 的 UIView。

    [self clearStage]; 
    [self.stageView addSubview:controller.view];
    presentedController.view.frame = self.stageView.bounds;
    

就是这样。很简单。我已经成功地将它用于切换控制器并在自制选项卡控件中查看。子控制器在视图生命周期中登记其视图,因此 , 等都viewDidLoad在这个子视图控制器中按预期工作。

希望这可以帮助某人。

于 2012-05-06T03:07:04.760 回答