Вы создаете экземпляр FirstViewController
, устанавливаете значение array
и затем освобождаете тот экземпляр, который освобождает объект. Таким образом, все усилия потрачены впустую. Так как это в SecondViewController
, я предполагаю, что к этому времени уже существует FirstViewController
, поэтому вы не должны устанавливать array
нового экземпляра FirstViewController
, а пытаться передать его существующему экземпляру. Поскольку у вас уже есть свойство, объявленное для совместного использования между контроллерами представления, мы будем использовать его.
Делайте это при создании экземпляра SecondViewController
в FirstViewController
,
SecondViewController * viewController = [[SecondViewController alloc] init];
self.array = [NSMutableArray array];
viewController.arraySecond = self.array;
[self.navigationController pushViewController:viewController animated:YES];
[viewController release];
Теперь массив распределяется между контроллерами представления. Не инициализируйте свойство arraySecond
где-либо еще, чтобы они оба указывали на один и тот же объект, а внесенные вами изменения в arraySecond
были видимы для экземпляра FirstViewController
. Вернувшись к экземпляру FirstViewController
, откройте добавленные вами значения, используя свойство array
.
Альтернативами совместному использованию объектов являются механизм делегирования и уведомления. Вы можете посмотреть на них тоже. Пока это должно работать.