2014-09-13 2 views
0

Я свяжусь с тем, чтобы решить свою проблему, а именно: я не знаю, как сохранить значение из (для ex) 4 viewControllers и сохранить его в последнем. Это должно быть похоже на оценочную карту, в первом квартале я заработал 4pt (и напишу в TextField), во втором квартале 5pt и т. Д. В последнем он должен быть суммирован и отсортирован и т. Д. я смотрел с последнего ViewController, называемого его Результатом, еще четыре называют первой, второй и т.д. В результате я создалКак сохранить значение в NSMutableArray из ViewControllers

@property(strong, nonatomic) NSMutableArray *array;

первый, второй и т.д. наследует массив из результата и сначала я создал:

-(void) prepereForSegue:(UIStoryboardSegue*)segue sender :(id)sender 
{ 

if ([segue.identifier isEqualToString:@"id1"]) { 

    NSString *str1 = [_firstResult text]; 

    Result *Result1 = [segue destinationViewController]; 

    Result1.array = [[NSMutableArray alloc]init]; 

    [Result1.array addObject:str1]; 

} 


} 

для второго:

-(void) prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender 
{ 

    if([segue.identifier isEqualToString:@"id2"]) { 
    NSString *str2 = [_SecondResult text]; 

    Result *Result1 = [segue destinationViewController]; 

    Result1.array = [[NSMutableArray alloc]init]; 

    [Result1.array addObject:str2]; 
    } 
} 

Когда я запускаю проект в массиве, это всего лишь последний балл с четвертого квартала. Я думаю, что я не должен выделять и инициализировать NSMutableArray в каждом viewController, но я не знаю, как заставить его работать. Пожалуйста, помогите мне. Цените!

+1

Создайте NSMutableArray в AppDelegate или создайте отдельный класс, который управляет вашей оценочной карточкой и использует ее совместно с sharedInstance во всех контроллерах. – 2014-09-13 09:37:20

+0

* Результат1 должен быть * result1;). (Основное соглашение об именах) –

+0

Вы правы, Клемент извините за это :) – Matt199

ответ

0

Да, вы, каждый раз создавая новый массив, который имеет свой текущий и единственный объект. Создайте общий объект и вызовите этот массив, чтобы сохранить и извлечь значения. Или просто создайте массив в appdelegate.

+1

Хорошо. Поэтому, когда я создаю массив в appDelegate, как я могу инициализировать и распределять это? И каждый контроллер должен наследовать от appDelegate? Извините за такой вопрос, но каждый был новичком один раз. – Matt199

+0

Я так благодарен вам! – Matt199

+0

@ Matt199 Пожалуйста, пропустите этот ответ. –

0

Каждый раз, когда вы создаете новый массив, поэтому массив содержит только последнее значение. создайте массив в appDelegate или используйте общий объект, чтобы сохранить результаты.

Смежные вопросы