Как скопировать объекты массива, которые находятся на разных вкладках - PullRequest
0 голосов
/ 27 августа 2011

У меня есть NSMutable Array в FirstviewController.Я хочу скопировать объекты этого массива в другой массив NSMUtable, который находится в SecondViewController. Но FirstViewController и SecondViewController находятся на разных вкладках (rootController моего приложения является tabBarController)

Примечание: я знаю, что это работает для [self.navigationController pushViewController: firstViewController animated: YES];Но как я могу это сделать, когда viewControllers находятся на разных вкладках, как в моем случае.

, пожалуйста, помогите мне.спасибо заранее.

Ответы [ 2 ]

2 голосов
/ 27 августа 2011

Есть несколько способов сделать этот тип шаблона:

  1. Делегирование.Здесь вы можете сообщить одному контроллеру представления о другом, передав ему указатель.Итак, сначала вы создаете контроллер 1, а затем, после создания контроллера 1, сообщаете контроллеру 2 о контроллере 1, чтобы контроллер 2 мог обращаться к общедоступным переменным экземпляра контроллера 1
  2. Уведомления.Вы можете отправить объект через систему уведомлений, которую вы бы зарегистрировали для прослушивания.Здесь контроллер 2 будет прослушивать определенные уведомления, которые контроллер 1 будет отправлять, когда вам это нужно.
  3. Глобальные переменные.Здесь вы сохраняете массив объектов не в каждом контроллере представления, а в глобальном месте, доступном для всех, например, делегат приложения или корневой контроллер представления.

Существует больше шаблонов проектирования, но ониваш лучший выбор для этого типа установки.Для получения дополнительной информации об этом, ознакомьтесь с Руководством по основам какао , предоставленным Apple

1 голос
/ 27 августа 2011

В приведенном ниже коде drink это массив класса detailViewController, а drinks это массив класса current, из которого я хочу перейти к другому классу и инициализировать массив в другом классе ...

DetailViewController *detailViewController = [[DetailViewController alloc] initWithNibName:@"DetailViewController" bundle:nil];
    detailViewController.drink = [self.drinks];
    [self.navigationController pushViewController:drinkDetailViewController animated:YES];
[detailViewController release];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...