IOS, обменивающийся «глобальные данные» через контроллеры просмотра

Я использовал приложение делегата как «глобальное ведро» для обмена данными между различными контроллерами просмотра. Как правило, я делаю что-то вроде этого:

My_AppDelegate *appDelegate = (My_AppDelegate *)[[UIApplication sharedApplication] delegate];

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

Есть ли лучший способ? Могу ли я настроить «слушатель» на какой-то глобальной области обмена, если кто-то придерживается там элемента данных, другой объект получит «обратно», чтобы позволить ему знать, что у кого-то есть данные, готовые к нему?

В Java мы делали это с наблюдателем / наблюдаемым классом - возможно, есть что-то подобное, или лучше в iOS?

7
задан Brian Tompsett - 汤莱恩 17 December 2015 в 11:45
поделиться