Ошибка симулятора 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())
)
}
}
}