отправка данных в предыдущий вид в iphone - PullRequest
0 голосов
/ 05 августа 2010

Каковы возможные способы отправки данных в предыдущий вид в iphone. Без использования Appdelegate. Потому что есть шанс, что мой класс представления снова будет создан.

Ответы [ 3 ]

3 голосов
/ 05 августа 2010

Я считаю, что лучший подход - использовать класс NSNotificationCenter. По сути, вы регистрируете объект (в качестве наблюдателя) в центре уведомлений.

Например, если у вас есть объекты A и B. A регистрируется в качестве наблюдателя. Теперь допустим, что A - это «предыдущий» объект, о котором вы говорите, вы можете B отправить уведомление (данные или сообщение) в центр уведомлений, который затем уведомляет объект A (и любых других зарегистрированных наблюдателей).

Пример:

В файле ClassA.m зарегистрируйтесь как показано ниже:

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(didSomething:) name:@"SomethingHappened" object:nil];

didSomething - метод, который получает уведомление, отправленное объектом B. Это будет выглядеть примерно так:

- (void) didSomething: (NSNotification *) notify {
...
}

Наконец, вы отправляете приведенное ниже сообщение из любого метода в ClassB.m, чтобы уведомить / отправить данные объекту A

[[NSNotificationCenter defaultCenter] postNotificationName:@"SomethingHappened" object:self userInfo:your_data];

Кажется запутанным, но, на мой взгляд, это лучший подход (и довольно простой, когда вы его понимаете:)).

0 голосов
/ 05 августа 2010

Если представление, с которым вы хотите установить связь, является родительским представлением (например, контроллер представления предыдущего представления находится там, где вы создали это представление), то вы, вероятно, захотите обработать отклонение представления в предыдущем контроллере представления.Когда вы это сделаете, вы можете прочитать данные, которые изменились, и обновить предыдущий контроллер представления новыми данными.

Затем в viewWillAppear: метод предыдущего контроллера представления обновите фактические представления, чтобы отразить текущиесостояние контроллера представления.

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

0 голосов
/ 05 августа 2010

Существует несколько способов обмена данными, причем Singleton Objetcs является одним из самых популярных:

Objective C Singleton

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...