Я думаю, есть два варианта:
- Разделите ваши данные в другом классе
NSObject
и сделайте его общей моделью данных для обоих ваших контроллеров представления. Напишите ему, когда пользователь что-то введет.
- (Действительно плохой вариант). Оставьте все как есть, убедитесь, что массив первого контроллера общедоступен, и просто получите данные от другого контроллера.
Кроме того, вы объявляете неизменный массив, вы не сможете его изменить. Вам придется либо воссоздать, либо объявить его как изменяемый.
Подробнее о первом варианте
Чтобы создать общую модель, вам нужно создать отдельный класс.
Добавьте свойство для хранения данных, например
@property (strong, nonatomic) NSMutableArray *userStrings;
Добавьте @synthesize
и инициализируйте его в методе init
вашего нового класса.
Создайте его экземпляр и назначьте его какому-либо свойству в обоих контроллерах представления, скажем, для:
@property (strong, nonatomic) NSObject *dataModel;
После того, как вы назначите его, вы сможете получить к нему доступ из ваших контроллеров представления. Там, когда ваш пользователь что-то вводит, вам нужно будет обновить содержимое вашего dataModel
, добавляя, изменяя или удаляя элементы в массиве модели. Это будет сделано аналогичным образом:
[self.dataModel setUserStrings:[NSMutableArray arrayWithObjects: [self.textField text], [self.textView text], nil]];
// or
[[self.dataModel userStrings] addObject:[self.textField text]];
Таким образом, вы можете иметь общий источник данных.
Возможно более простое решение
Возможно, вам не нужно, чтобы модель одновременно использовалась двумя контроллерами, и, возможно, вы открываете второй только после того, как пользователь завершил ввод, и вы создаете его из первого контроллера.
В этом случае вам не нужно создавать и совместно использовать модель, вы можете просто создать массив на основе пользовательского ввода и передать его во второй контроллер. Вы должны создать этот второй контроллер и установить его свойство tableData
. Когда появится ваш следующий контроллер, он просто прочитает это свойство и покажет данные.
Если вам нужна дополнительная информация о таких подходах, я бы посоветовал вам посмотреть несколько видеоуроков по использованию подхода MVC в Objective-C. Например, курс Стэнфорда по программированию на iOS - это круто. Он доступен бесплатно в iTunes U.