Refresh page малой кровью)


#1

Привет! Снова обращаюсь к знатокам.
У меня приложение на один экран- управляет релюшкой и получает кое какие данные из Json. В связи с тем что данные динамические - хотелось бы сделать отдельную кнопку- Refresh, которая бы просто обновляла страницу. В гугле все ссылки ведут на pull to refresh для UITableView, но городить огород смысла не вижу.
Есть ли какая то команда, вложив которую в кнопку- можно было бы реализовать refresh страницы, так сказать, малой кровью?


#2

А данные отображаются в таблице?


#3

Данные отображаются через UILabel так что нет, не в таблице.


#4

Вынесите все заполнения лейблов в отдельный метод.
Рефреш сделайте повторный запрос данных и после получения ответа, вызывайте метод заполнения лейблов.
Либо юзайте RxSwift


#5

Спасибо, буду разбираться.


#6

Не могли бы подробнее рассказать, как мне сделать рефреш отдельного метода? Кажется, именно это я и ищу.


#7

А что вам мешает вызвать ваш запрос повторно?как он у вас первый раз вызывается?


#8

Примерный код

func viewDidLoad() {
    requestData()
}

func requestData() {
    // запрос к API
    // при получении данных
    setLabels()
}

func setLabels() {
    // отображаете свои данные в лейблах
}

@IBAction func refreshData() {
    requestData()
}

#9

Изначально вызывается через Alamofire

AF.request(“http://192.168.0.6/config.live.json”).responseJSON { response in

if let json = response.result.value as ? [String: Any ] {

self .l1.text = json[“time”] as ! String

}

}

и потом просто подставляется в

@IBOutlet weak var l1: UILabel!


#10

Повторно вызвать запрос оказалось самым простым решением. Спасибо.


#11

Т.е. то что я и предлогал с самого начала.


#12

Верно, спасибо за помощь!


#13