Навигация SwiftUI между представлениями родительского и дочернего списков вызывает дополнительную ссылку sh на устройстве, но не в симуляторе - PullRequest
1 голос
/ 13 апреля 2020

У меня есть приложение SwiftUI, у которого есть Родительское представление с навигационным представлением и Список с несколькими элементами. При нажатии на любой элемент в списке приложение переходит к дочернему виду, который также имеет простой список с некоторыми элементами.

Проблема в том, что в симуляторе все в порядке, навигация плавная и четкая, но когда я запускаю код на своем телефоне, появляется видимый refre sh, когда загружается дочернее представление, refre sh очень тонкий, но все еще видимый, вы можете увидеть, как появляется самый верхний разделитель элементов списка, и список немного покачивается.

Я смог воспроизвести это даже с помощью этого простого кода ниже.

import SwiftUI

struct ContentView: View {
    var numbers = ["1","2","3"]

    var body: some View {
        NavigationView {
            List(self.numbers, id: \.self) { number in
                NavigationLink(destination: ChildView()) {
                    Text(number)
                }
            }
            .navigationBarTitle(Text("Parent"))
        }
    }
}

struct ChildView: View {
    var numbers = ["1","2","3","4","5","6","7","8"]

    var body: some View {
        List(self.numbers, id: \.self) { number in
          Text(number)
        }
        .navigationBarTitle(Text("Child"))
    }
}

struct ContentView_Previews: PreviewProvider {
    static var previews: some View {
        ContentView()
    }
}

Вот экранная запись кода выше при работе на моем iPhone. Обратите внимание на дочерний список и то, как он немного перемешивается, первый разделитель элементов списка даже не присутствует во время перехода, он появляется после refre sh.

Как я могу это исправить ?? Вышеприведенный код также кажется простым, поэтому я не понимаю, что я делаю неправильно.

Спасибо за вашу помощь.

SwiftUI Navigation refresh issue

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...