Если вы попытаетесь просмотреть docs около UIAppearance
, вы увидите примечание:
iOS применяет изменения внешнего вида, когда представление входит в окно, он не меняет внешний вид представления, которое уже находится в окне. Чтобы изменить внешний вид представления, находящегося в данный момент в окне, удалите представление из иерархии представления и верните его.
На основании этой заметки вы можете измените внешний вид с помощью небольшого трюка, удалив и сразу же верните самый верхний вид в иерархии после применения изменений внешнего вида:
guard let currentView = (UIApplication.shared.delegate as? AppDelegate)?.window?.rootViewController?.view, let superview = currentView.superview else { return } UITabBar.appearance().tintColor = .green currentView.removeFromSuperview() superview.addSubview(currentView)