如何使用Storyboard在另一个Controller中子视图UITableViewController

时间:2012-04-15 04:17:17

标签: ios uiviewcontroller embed uitableview

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

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

我有以下组件: 链接到UIView的CustomViewController(从故事板中拖入) CustomTableViewController链接到UITableView(从故事板中拖入)

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

  • 这种野兽方法是什么?
  • 如何以编程方式完成?
  • 这可以在故事板上以某种方式完成吗?

非常感谢任何帮助。感谢

1 个答案:

答案 0 :(得分: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;
    
  5. 就是这样。很简单。我已成功使用它与切换控制器和在自制选项卡控件中查看。子控制器在视图生命周期中查看其视图,因此viewDidLoad等都在此子视图控制器中按预期工作。

    希望这有助于某人。