Ошибка симулятора Xcode 13.2.1 для iOS 14.0.1 и iOS 14.1?

С использованием .toolbar и ToolbarItem (определено как доступное в iOS 14.0), панель навигации NavigationLinkне выполняется при нажатии (исчезает при нажатии и возвращается при отпускании) при моделировании в 14.0.1 или 14.1. Он отлично работает при моделировании в iOS 14.2 и более поздних версиях, которые я тестировал. Версия до iOS 14.0, .navigationBarItemsработает отлично. Я не тестировал это на реальном оборудовании для iOS 14.x. Я могу обойти это с #available, но я не должен, не так ли?

  • это ошибка симулятора в XCode 13.2.1 (правильно ли он работает на реальном оборудовании?)
  • это ошибка iOS?
  • если это не ошибка, это ошибка в моем коде?
      import SwiftUI

@main
struct TestApp: App {
    var body: some Scene {
        WindowGroup {
            NavigationView {
                ContentView()
            }
            .navigationViewStyle(.stack)
        }
    }
}

struct ContentView: View {
    var body: some View {
        Text("some text")
            .modifier(AddNextNavigation())
    }
}

struct AddNextNavigation: ViewModifier {
    func body(content: Content) -> some View {
        // 14.0 here fails, 14.2 succeeds
        if #available(iOS 14.0, *) {
            content
                .navigationTitle("Some Title")
                .toolbar {
                    ToolbarItem(placement: .primaryAction) {
                        NavigationLink("Next", destination: NextView())
                    }
                }
        } else {
            content
                .navigationBarTitle("Some Title")
                .navigationBarItems(trailing:
                    NavigationLink("Next", destination: NextView())
                )
        }
    }
}

0 ответов

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