Ссылка навигации работает только один раз в SwiftUI

В учебнике по коду SwiftUI яблоки под названием BuildingListsAndNavigation они показывают вам, как использовать NavigationLinks. Однако, как только вы щелкнете ссылку, а затем нажмете кнопку перехода назад, та же ссылка будет отключена, пока вы не нажмете другую ссылку, а затем снова нажмите кнопку возврата.

Эта проблема возникает не только в учебнике Apple по SwiftUI, но и в моих собственных проектах SwiftUI. Как сделать так, чтобы я мог дважды подряд нажимать одну и ту же ссылку?

Вот пример кода

struct LandmarkList: View {
    var body: some View {
        NavigationView {
            List(0 ..< 5) { number in
                NavigationLink(destination: Text("next page")) {
                        Text("Row\(number)")
                }
            }
            .navigationBarTitle(Text("Landmarks"))
        }
    }
}

3 ответа

Решение

Работает на устройствах, а не на симуляторе.

На данный момент в NavigationLink есть 2 основных ошибки. Первый - это тот, о котором вы упомянули, вы не можете дважды перейти по одной и той же ссылке. Если вы решите добавить вторую ссылку, чтобы, по крайней мере, протестировать свой пользовательский интерфейс, вы столкнетесь со второй ошибкой, которая возникает, когда вы нажимаете вторую ссылку, а затем после того, как она нажимает ее, возвращается к корневому каталогу.

Это последняя версия Xcode версии 11.3 (11C29) и включенный в нее симулятор iOS 13.3 (17C45).

iOS 13.3 (17C45) на iPhone XR не содержит этих ошибок, что очень странно, учитывая тот же номер сборки, что и у Simulator.

Кажется, что ошибка исправлена ​​в Xcode 11.4

Другие вопросы по тегам