Я получил TabBarController в качестве начальной сцены; каждая вкладка использует в основном одну и ту же информацию. Эта информация доступна только во время выполнения и извлекается через json. Информация не будет изменена моим приложением, но может быть изменена с другой стороны и может измениться в следующий раз, когда я обновлю ее.
Является ли это действительным случаем для синглтона?
Я думал о загрузке информации до того, как TabBarController будет создан, и передать ее на свои вкладки, но теперь я столкнулся с несколькими недостатками: (с большим AFAIK перед каждым)
- Извлечение выполняется до того, как пользовательский интерфейс будет окрашен, это может занять некоторое время из-за медленного подключения.
- Последующее обновление информации невозможно без миллиона уведомлений, так как я не могу передать ее обратно в иерархию.
- Приложение не может запускаться/работать в автономном режиме и позже переключаться в онлайн.
- Это не будет работать с раскадровкой TabBarController, потому что мне нужно перезаписать все инициации вкладок.
С синглтоном, содержащим информацию, единственный недостаток, который я мог видеть до сих пор, заключается в том, что обновление информации в фоновом режиме может привести к тому, что пользовательский интерфейс будет выглядеть беспорядочным, если я укажу на него напрямую. Но у меня был бы полный доступ с каждого уровня навигации, что действительно заманчиво.
Существуют ли другие возможные решения/рекомендации по обмену данными в TabBarController?
Я надеюсь, что это не будет закрыто немедленно, поскольку я использовал слово singleton... :)