0

我对 FOR 循环和子视图有疑问。每次循环以不同的子视图名称运行时,我都想显示不同的子视图。名称必须是“hoofdstukController”+ i 计数。

我怎样才能做到这一点?我尝试了几种方法,但都使应用程序崩溃。这是我的循环:

_viewControllers = [[NSMutableArray alloc] init];
for (int i = 0; i < 10; i++)
{
    CGRect frame = _scrollView.frame;
    frame.origin.x = frame.size.width * i;
    frame.origin.y = 0; 
    hoofdstukController.view.frame = frame;
    [_scrollView addSubview:hoofdstukController.view];
    [_viewControllers addObject:hoofdstukController];
}

希望任何人都可以将我推向正确的方向!

谢谢。

4

2 回答 2

1

您应该首先将所有视图控制器添加到数组中:

_viewControllers = [[NSMutableArray alloc] init];
[_viewControllers addObject:hoofdstukController];
[_viewControllers addObject:hoofdstukController0];
[_viewControllers addObject:hoofdstukController1];
//etc.

然后你可以遍历该数组并将它们的视图添加为子视图。请注意,您还应该将它们添加为父视图控制器的子视图控制器:

编辑:对不起'我'工作你需要修改一下

for (UIViewController *vc in _viewControllers)
{
    CGRect frame = _scrollView.frame;
    frame.origin.x = frame.size.width * i;
    frame.origin.y = 0; 
    vc.view.frame = frame;

    [viewControllerHostingTheScrollView addChildViewController:vc];
    [_scrollView addSubview:vc.view];
    [vc didMoveToParentViewController:viewControllerHostingTheScrollView];
}

编辑:对不起'我'工作你需要修改一下:

int i = 0;
for (UIViewController *vc in _viewControllers)
{
    CGRect frame = _scrollView.frame;
    frame.origin.x = frame.size.width * i++;
    frame.origin.y = 0; 
    vc.view.frame = frame;

    [viewControllerHostingTheScrollView addChildViewController:vc];
    [_scrollView addSubview:vc.view];
    [vc didMoveToParentViewController:viewControllerHostingTheScrollView];
}
于 2012-10-26T12:28:32.127 回答
0

在您的代码中,您 hoofdstukController.view.frame在一个 hoofdstukController 中设置了 10 次框架。它需要最后一帧(frame.size.width * i)。在这里,您必须在每次 for 循环运行以及 alloc您的.initsetTaghoofdstukController.tag=i

于 2012-10-26T11:47:34.850 回答