Как создать 2 таймера в SwiftUI? - PullRequest
1 голос
/ 15 апреля 2020

Настройка просмотра: - Просмотр содержимого с таймером, который срабатывает каждую секунду для обновления метки - Модальный режим с таймером, который срабатывает каждую секунду для обновления другой метки (в модале)

Вопрос: Почему таймер в модале никогда не работает? Это ограничение SwiftUI? Это ограничение издателей? Я не понимаю, почему это не сработает.

Пожалуйста, посмотрите код ниже

import SwiftUI

struct ContentView: View {
    @State private var isShowingCounter = false

    @State var counter = 0

    private let timer = Timer.publish(every: 1, on: .main, in: .default).autoconnect()

    var body: some View {
        VStack {
            Text("count: \(counter)")
                .onReceive(timer) { _ in
                    self.counter += 1
            }

            Button(action: {
                self.isShowingCounter.toggle()
            }) {
                Text("Test View counter")
            }
        }
        .sheet(isPresented: $isShowingCounter) { TestView() }
    }
}


struct TestView: View {
    @State var count = 0

    private let timer = Timer.publish(every: 1, on: .main, in: .default).autoconnect()

    var body: some View {
        Text("\(count)")
        .onReceive(timer) { _ in
                self.count += 1
        }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...