2012-03-01 4 views
0

У меня есть основной вид, где я инициализирую массивы сечений и освобождаю их в viewDidUnload. Поэтому, когда я перехожу к другому представлению, где у меня есть инструкции, и я возвращаюсь к основному виду, все массивы нуль снова.Хранить массивы между представлениями

Что мне делать: когда приложение запускается, массивы инициализируются, вы используете их, я могу перейти к другим представлениям и вернуться к основному виду, что массивы сохраняют значения и только тогда, когда приложение закрывается, а затем освобождает все массивы.

Как мне это сделать?

ответ

0

Просто отпустите их в -dealloc и инициализируйте их в viewDidLoad. Таким образом, theyre только освобождается или аннулируется, когда просмотр выключается, и когда он перезагружается, они повторно инициализируются.

Надеюсь, это поможет.

0

Вы можете использовать различные подходы к решению своей проблемы. Я могу сказать вам несколько способов.

  • Вы можете написать методы для инициализации вида, которые будут принимать NSArray как параметр. Как:

    - (id)initWithArray:(NSArray *)myArray { 
        [super init]; 
        //here you can store an NSArray inside this ViewController in @property. For ex: 
        currentArray = myArray; 
        return self; 
    } 
    
  • Вы можете использовать глобальное хранилище, как CoreData и использовать класс NSManagedObject для определения экземпляров для нужного объекта в каждом представлении.

  • Вы можете использовать delegate approach. Например, вы можете делегировать методы из второго представления в первом представлении.

+0

Большое спасибо, но, как я уже сказал, я действительно начинаю, где мне нужно вставить код? У меня есть только заголовок и реализация: ViewController.h и ViewController.m вот initilization: - (Недействительными) viewDidLoad { // iniciliza ла табла tableViewData = [[NSMutableArray Alloc] initWithObjects: ноль]; tableViewDataDetail = [[NSMutableArray alloc] initWithObjects: nil]; [super viewDidLoad]; } Итак, каждый раз, когда я иду на другой вид и возвращаюсь, я теряю данные, которые я ввел. Как мне использовать initWithArray? и снова извините за то, что вы так глупы. – user1243660