我的问题是我的NSMutableArray
始终使用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循环遍历所有元素,但每个对象中始终存在最后一个数字....
任何提示?
答案 0 :(得分:2)
您可能想要创建多个QuestionViewController实例。但实际上你只创建了一个对象,并在其上调用了setParam 11次。
此行[Views addObject:ContactView]
也无效,因为您创建了一个新的数组对象并将其分配给下一行的视图。与UIViewController *newView = [[UIViewController alloc]init]
相同。希望你使用ARC,否则会造成内存泄漏!