0

我的问题是我总是用-methodNSMutableArray得到最后一个元素。objectatindex

我有一个数组,其中一些类派生自UIViewController. 我想显示一个又一个视图。

首先我填充数组:

ContactViewController *ContactView = [[ContactViewController alloc]init];
QuestionViewController *QuesView = [[QuestionViewController alloc]init];;
ContactView.mydelegate = self;
[QuesView setDelegate:self];


[Views addObject:ContactView];

Views =[[NSMutableArray alloc]initWithCapacity:11];
for (int i = 0; i < 11; i++) {
    [QuesView setParam:@"text" :i ];
    [Views addObject:QuesView];
}

之后我想获得实际视图并像这样跳到下一个:

-(IBAction)Button:(id)sender
{

    UIViewController *newView = [[UIViewController alloc]init];
    newView =  (UIViewController*)[Views objectAtIndex:enumerator];
    [self presentViewController:newView animated:YES completion: nil];
    enumerator++;
     //dismiss old view here....

    NSLog(@"number %d",[newView getNumber]);
}

新视图未显示,日志中的数字始终是数组的最后一个数字。我尝试使用 for 循环遍历“视图”中的所有元素,但每个对象中总是有最后一个数字....

任何提示?

4

1 回答 1

2

您可能想要创建多个 QuestionViewController 实例。但实际上您只创建了一个对象并对其调用了 11 次 setParam。

此行[Views addObject:ContactView]也无效,因为您创建了一个新数组对象并将其分配给下一行中的 Views。与UIViewController *newView = [[UIViewController alloc]init]. 希望您使用的是 ARC,否则会造成内存泄漏!

于 2012-09-07T12:47:07.500 回答