Как передать логику модели на progressView ?

swift
ios

#1

Здравствуйте.

  1. Пишу приложение с разными вариантами обратного отсчета таймера, основная логика прописана, все работает отлично. Хочу добавить анимацию прогресса под каждый вид таймера. То есть мне нужно чтобы мой progressView брал информацию с модели в которой описана логика всех таймеров и мой progress полз заданное моделью количество времени.

Возможно ли это вообще реализовать в формате моего вопроса, либо это делается другим способом?

Прошу сильно не грузить терминами, так как я многого еще не понимаю форумы облазил, ничего подходящего не нашел, возможно неправильно задаю вопрос. Буду благодарен примерам с объяснениями, ссылкам на статьи и т.д )


#2

Для начала не плохо бы увидеть ваш код. Можно сокращенный.


#4

Больше интересует как работает ваш count down.


#5

В общем я узнал что не получится использовать модель, так как это два разных класса и они ничем не связаны. Тогда каким образом можно это реализовать?

// MARK: - Run timer settings
@objc private func runTimer() {
    let workoutTimeFloat = readableTime(miliseconds: counter)
    counter -= 1
    switch currentTimerState {
    case .rest:
        restLabel.text = workoutTimeFloat
    case .running:
        workoutLabel.text = workoutTimeFloat
    default: return
    }
    
    if counter <= 1 {
        switch currentTimerState {
        case .rest:
            restLabel.text = readableTime(miliseconds: 0)
        case .running:
            workoutLabel.text = readableTime(miliseconds: 0)
        default: break
        }
        timer.invalidate()
        manageTimer()
    }
}

#6

Передать через инициализатор вашу модель и делов то.


#7

а можно пожалуйста на примере?


#8
class ClassName {
    var model: Model?

    init(model: Model) {
        self.model = model
    }
}

#9

Извините, не совсем понимаю как и где это использовать и что мне это даст.
Так не получится


#10

В общем спасибо за помощь, разобрался.

По итогу мне нужно было вписать формулу для моего progress в runTimer() чтобы оно высчитывало время работы и отдыха таймера и отображало progress. Скорее всего неправильно поставил вопрос :slight_smile: