Не обновляется Label

swift

#1

Доброе утро! Не обновляются данные в Label. В консоли видно, что приходит ,то что нужно, а вот в Lebele не обновляются.
Есть перечень кнопок с временем это время передается в Label, но туда попадет только то, время по которому кликнул 1 раз. Остальные клики нет.

  func titleHeader(_ item: TimeSession) {
    //DispatchQueue.main.async { [weak self] in
   //    guard let self = self else { return }
         self.timeLabel.text = "\(String(describing: item.time ?? ""))"
         print(self.timeLabel.text)
    //}
}

#2

Проверьте что у вас item.time не пуст


#3

он не пуст
print(item.time)
Optional(“11:00”)
Optional(“13:45”)
Optional(“15:25”)
Optional(“19:05”)
Optional(“20:05”)


#4

Может тогда не связали остальные кнопки с IBAction?
В самом методе обновления текста ничего такого нету. Занчит нужно искать выше.


#5

Кнопки связаны все. Кликаю на любую она передает в Label, а вот потом кликая на любую не меняется Label


#6

Можно код кнопки?
А то мы так гадать долго будем😀


#7
extension HallSchemeViewController: UpdateDayPickerDelegate {
func selectedButton(sender: UIButton) {
    let first = FirstViewController()
    let tapsender = timeSession[sender.tag]
    
    DispatchQueue.main.async { [weak self] in
        guard let self = self else { return }
        first.delegate = self.hallView
        first.delegate?.titleHeader(tapsender)
        
        self.hallPresenter.selector(tapsender.hallId ?? 0)
        self.hallView.timePickerView.delegate = self
        
        self.hallPresenter.callback = { item in
            self.hallView = HallSchemeView(self.id, self.timeSession, item, tapsender)          
            self.collectionView.reloadData()
        }
    }
    self.collectionView.reloadData()
}

}


#8

Меня смущает создание новых экземпляров классов.
Правда я не знаю как должно работать все.


#9

Логика такая.
1.Имеется class HallSchemeViewController: UIViewController.
2. Все UIView элементы вынесены в class HallSchemeView: UIView
3. По нажатию на UIBotton срабатывает func selectedButton(sender: UIButton)


#10
  1. FirstViewController в данном случае ничего не делает, либо это на будущее.
  2. Слишком накладно каждый раз пересоздавать HallSchemeView
  3. Лучше всего будет вызывать метод обновления через аутлет

#11

1.FirstViewController действительно на будущее, 3 пересмотрю!
2 Тогда как лучше реализовать?


#12

RexHunt
Вы абсолютно правы вся помеха тому вот этот self.hallView = HallSchemeView(self.id, self.timeSession, item, tapsender)