繁体   English   中英

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

[英]How to load xib into two Container Views within one view controller

我想创建一个单人单圈计时器xib / class,并将其两次加载到我的故事板上的单个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];

在此处输入图片说明

在此处输入图片说明

在情节提要中,您可以将两个容器视图添加到同一视图控制器,然后通过右键单击并选择嵌入将它们都与同一子视图控制器连接。 这样创建了segue:

嵌入segue屏幕截图

单击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];
    }
    }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM