изменении локали применить изменения во всем приложении. Сейчас меняется только при перезагрузке приложения.
Меняю локализацию в таблице. tableView.reloadData() срабатывает сразу. Однако если я выхожу обратно в другой контроллер никаких изменений нет. Вот никак не могу придумать как бы обновить все приложение без перезагрузки
В целом, изменение локализации в рантайме в UIKit как таковой нету, кто-то изобретает свои способы, кто-то пытается грузить бандлы, но всё это на мой взгляд попахивает костылями. Но выход всё ж есть, хоть немного и затратный. Apple предлагает при смене языка внутри приложения, отправлять человека в настройки вашего приложения в системе путём UIApplication.shared.open(URL(string: UIApplication.openSettingsURLString)!) Открываются настройки, юзер меняет язык и возвращается в апку. Все применится автоматом. Вот только теперь смущает то, что вы оказываетесь снова на главной странице приложения, а хочется вернуться туда где и были. А вот чтобы решить эту проблему, достаточно воспользоваться механизмом восстановления состояния у сцены(scene-based state restoration). Как это делается можно загуглить. И вот вы в том же месте где и были, и язык сменился.
Спасибо! Попробую и так
Обсуждают сегодня