Я считаю, что лучший подход - использовать класс 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];
Кажется запутанным, но, на мой взгляд, это лучший подход (и довольно простой, когда вы его понимаете:)).