Я хочу использовать действие пользовательского интерфейса для обновления, чтобы вызвать переход к модальному виду.Действие работает отлично, вызывая модальный переход, как и ожидалось.Но когда я отклоняю модальный режим, представление управления обновлением все еще видно.
Я правильно вызываю refreshControl.endRefreshing()
перед переходом, но проблема заключается в том, что пользовательский интерфейс не успевает завершить анимацию, которая закрывает представление управления обновлением до запуска перехода, поэтому он получаетсосать на полпути.
Если я помещу небольшую задержку (0,4 с) перед запуском перехода, этот вид помогает, поскольку он позволяет завершить анимацию, но это похоже на взлом.Кроме того, если пользователь действительно медленно нажимает на просмотр таблицы и освобождает раскрытие позже, чем через 0,4 секунды, возникает та же проблема.
Как я могу гарантировать, что элемент управления обновлением не будет виден, когда яотклонить модальный вид?У меня есть идеи (но я не могу найти способ их реализовать), включающие: 1) обеспечение того, чтобы анимация, которая отклоняет элемент управления обновлением, успела завершиться до запуска перехода.2) отклонить представление управления обновлением родительского представления, когда я отклоняю модальное.
Я не могу заставить работать все вышеперечисленное.С 1) задержка работает (иногда), но ощущается как взлом.При 2) tableView.reloadData () перезагружает только табличное представление, а не все представление, поэтому элемент управления обновлением остается.
Любая помощь будет принята с благодарностью.
Вот код, который реализует элемент управления обновлением.
lazy var refreshControl: UIRefreshControl = {
let refreshControl = UIRefreshControl()
refreshControl.addTarget(self, action: #selector(pullToAddCard(_:)), for: .valueChanged)
return refreshControl
}()
А вот код, который запускается элементом управления обновлением
@objc func pullToAddCard(_ refreshControl: UIRefreshControl) {
refreshControl.endRefreshing()
delay(0.4, closure: {
self.performSegue(withIdentifier: "segueFromPlaylistDetailToNewCard", sender: self)
})
}
А вот кодснимок экрана того, как выглядит родительское представление, когда я возвращаюсь к нему (отклоняя модальное представление.) "застрявшее" представление управления обновлением видно в верхней части.