Добрый день. Подскажите, не могу сообразить.
Предположим есть простое приложение с несколькими экранами где реализованы tableView, данные получаются из сети после чего таблицы обновляются.
Создал индикатор который показывает, что идет обновление из сети
let activityIndicator = UIActivityIndicatorView(style: .medium)
Сделал небольшую функцию инициализации
func setupActivityIndicator() {
self .activityIndicator.hidesWhenStopped = true
activityIndicator.color = colorLiteral(red: 0.4666666687, green: 0.7647058964, blue: 0.2666666806, alpha: 1)
}
Инициализировал её в viewDidLoad()
И написал две простые функции которые добавляют и убирают индикатор в navigationItem во время загрузки из сети
func startActivityIndicator() {
self .navigationItem.titleView = self .activityIndicator
self .activityIndicator.startAnimating()
self .activityIndicator.isHidden = false
}
func stopActivityIndicator() {
self .activityIndicator.stopAnimating()
self .navigationItem.titleView = nil
}
Соответственно загрузка начинается, я включаю индикатор, загрузка заканчивается я останавливаю
Проблема в том что у меня этот код дублируется в каждом контроллере, подскажите как грамотно его вынести в отдельный UI класс