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, иначе это приведет к утечке памяти!

Другие вопросы по тегам