Как я должен передать массив между контроллерами представления? - PullRequest
0 голосов
/ 05 февраля 2011

Я создаю приложение, которое использует контроллер TabBar, в котором один из контроллеров представления установлен NSMurableArray (и может быть изменен). Затем мне нужно использовать этот же массив для заполнения таблицы в одном из других представлений, когда он выбран. Я изучал использование синглтона (как уже было предоставлено в качестве ответа на этот вопрос на этом сайте), но мне не повезло.

Будет ли синглтон лучшим вариантом или есть лучший способ сделать это? Буду признателен за любую помощь / примеры, если это возможно?

Ответы [ 3 ]

1 голос
/ 05 февраля 2011

У вас есть несколько вариантов сделать это, вот 2 ...

1.) NSMutableArray должен быть свойством одного контроллера представления, чтобы другой мог обращаться к нему как viewController1.mutableArray.Для этого просто добавьте @property (nonatomic, retain) NSMutableArray *mutableArray в ваш класс viewController (используя любое имя).

2.) Передайте массив через метод из первого viewController в другой и сохраните ссылку на этот массив вдругой класс.

0 голосов
/ 07 февраля 2011

Спасибо за вашу помощь, в конце концов, вот как я это сделал:

UIViewController * tmpNamesListVC = [self.tabBarController.viewControllers objectAtIndex: 1]; self.names = [имена tmpNamesListVC];

Когда он собирается, я получаю 'UIViewController, возможно, не отвечает на -names', но все компилируется и запускается как надо.

0 голосов
/ 05 февраля 2011

Вы можете «прикреплять» контроллеры друг к другу так же, как вы «прикрепляете» элементы пользовательского интерфейса к контроллерам. Например, объявить переменную

IBOutlet ReferencedController *referencedMenu;

и затем в Интерфейсном Разработчике проведите линию между ссылочными и ссылочными контроллерами.

Правильно ли я вас понимаю?

...