如何在一个视图控制器中将xib加载到两个Container视图中

时间:2013-07-03 20:28:47

标签: ios storyboard xib container-view

我想创建一个单人圈计时器xib / class并将其加载到我的Story Board上的单个View Controller上。这两个实例中的每一个都将用于在单个ViewController上计时和比较两个人的单圈时间。

我在故事板视图控制器(LapCounterViewController)中并排放置了两个容器视图

我还创建了一个xib和类文件作为单人圈计时器(LapCounterNibViewContainer)

如何创建LapCounterNibViewContainer的两个实例并将其放在每个容器视图中

_vc1 = [[LapCounterNibViewController alloc] initWithNibName:@"LapCounterNibViewController"  bundle:nil];
_vc1.view.frame = self.LapCounterFrame1.frame;
//_vc1.delegate = self;

[_LapCounterFrame1 addChildViewController:_vc1];
[_vc1 didMoveToParentViewController:self];
[self.view addSubview: _vc1.view];

enter image description here

enter image description here

1 个答案:

答案 0 :(得分:0)

在故事板中,您可以向同一个视图控制器添加两个容器视图,并通过右键单击拖动并选择嵌入将它们连接到同一个子视图控制器。这就像这样创建了segue:

embed segue screenshot

单击segue并为其指定标识符。然后,将prepareForSegue方法添加到父视图控制器,并根据需要单独为圈计时器设置一些属性。

- (void) prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
    if ([segueName isEqualToString: @"embedSegueToLapTimerOne"]) {
        LapCounterNibViewController * childViewController = (LapCounterNibViewController *) [segue destinationViewController];
        [childViewController setFoo:bar1];
    }
    if ([segueName isEqualToString: @"embedSegueToLapTimerTwo"]) {
        LapCounterNibViewController * childViewController = (LapCounterNibViewController *) [segue destinationViewController];
        [childViewController setFoo:bar2];
    }
    }