我的问题是我的NSMutableArray总是得到objectatindex-method的最后一个元素。
我有一个数组,其中包含一些从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循环遍历"Views“中的所有元素,但每个对象中总是有最后一个数字……
有什么提示吗?
发布于 2012-09-07 20:47:08
您可能希望创建多个QuestionViewController实例。但实际上您只创建了一个对象,并对其调用了11次setParam。
这一行的[Views addObject:ContactView]也没有效果,因为您创建了一个新的数组对象,并将其分配给下一行的视图。UIViewController *newView = [[UIViewController alloc]init]也是如此。希望你使用的是ARC,否则会造成内存泄漏!
https://stackoverflow.com/questions/12316959
复制相似问题