Скрыть и показать кнопку возврата в панели навигации

У меня есть эти два метода:

func showSpinner()
{
    let spinner = UIActivityIndicatorView(activityIndicatorStyle: .White)
    spinner.startAnimating()

    self.navigationItem.leftBarButtonItem = UIBarButtonItem(customView: spinner)
    self.navigationItem.hidesBackButton = true
}

func hideSpinner()
{
    self.navigationItem.leftBarButtonItem = nil
    self.navigationItem.hidesBackButton = false
}

В viewDidLoad Я звоню showSpinner а потом после загрузки данных я звоню hideSpinner, Но спина кнопки часто прыгает hideSpinner, Как это исправить?

введите описание изображения здесь

1 ответ

Решение

Вы можете использовать задержку, чтобы показать кнопку "Назад" после снятия счетчика. Как 0,2 секунды или согласно требованию

func hideSpinner()
{
    self.navigationItem.leftBarButtonItem = nil
    dispatch_after(1, dispatch_get_main_queue()) { () -> Void in
        self.navigationItem.hidesBackButton = false
    };
}
Другие вопросы по тегам