NSMutableArray objectatindex всегда показывает последний объект
Моя проблема в том, что мой 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 для всех элементов в "Views", но всегда есть последний номер в каждом объекте....
какие-нибудь намеки?
1 ответ
Вы, вероятно, хотите создать несколько экземпляров QuestionViewController. Но вы фактически создаете только один объект и вызываете для него setParam 11 раз.
Также эта линия [Views addObject:ContactView]
не имеет никакого эффекта, потому что вы создаете новый объект массива и присваиваете его представлениям в следующей строке. То же самое с UIViewController *newView = [[UIViewController alloc]init]
, Надеюсь, вы используете ARC, иначе это приведет к утечке памяти!