Когда Вы возвращаетесь в главный поток после того, как пришел ответ от сервера, сохраните результаты в Ваш plist и после этого пошлите notification об этом событии.
NSNotificationCenter и
NSNotification в помощь.
На эту нотификацию могут быть подписаны любые объекты. Так что если сейчас активен viewController, который отображает погоду в конкретном городе, после получения нотификации смело обновляйте данные.
Что касается "куда положить код работы с сервисом погоды". Учитывая, что Ваше приложение по описанию миниатюрное, можете смело этот код "пихать" в viewDidLoad root viewController'а. В противном случае, если хочется обращатья к серверу из разных мест, можно создать отдельный синглтон с простеньким интерфейсом в один метод а-ля
- (void)temperatureListWithCompletion:(void(^)(NSError * error, NSArray *results));
И вызывать его уже откуда душа пожелает. Не стоит, правда, забывать о том, что нет смысла посылать новый запрос, пока не пришел ответ на предыдущий точно такой же.