Xcode 12.5 сломал NavigationLink
Я только что обновил Xcode до версии 12.5. С тех пор у меня проблема с кодом NavigationLink. Подпредставление появится, но когда я нажимаю кнопку отмены, чтобы вернуться к родительскому представлению, я получаю сообщение об ошибке в журнале.
Невозможно представить. Пожалуйста, сообщите об ошибке.
Этого не произошло в Xcode 12.4. Я вернулся к Xcode 12.4, и проблема исчезла. Я установил 12.5 в качестве побочного приложения и написал несколько общих представлений, чтобы продемонстрировать проблему.
Я читал и видел, что если у меня есть только две навигационные ссылки в представлении, проблема не возникает. Но это было бы серьезным изменением дизайна моего приложения ... Я действительно мог бы использовать лучшее решение, если оно есть. ТИА Боб
import SwiftUI
struct SetupMenuView: View {
var body: some View {
NavigationView {
VStack(alignment: .leading) {
Divider().background(Color.black)
NavigationLink(destination: SubView01()) {
Text("SubView01")
.foregroundColor(.black)
.font(.largeTitle)
}
.padding(.leading, 25)
Divider().background(Color.black)
NavigationLink(destination: SubView02()){
Text("SubView02")
.foregroundColor(.black)
.font(.largeTitle)
}
.padding(.leading, 25)
Divider().background(Color.black)
NavigationLink(destination: SubView03()) {
Text("SubView03")
.foregroundColor(.black)
.font(.largeTitle)
}
.padding(.leading, 25)
Divider().background(Color.black)
NavigationLink(destination: SubView04()) {
Text("SubView04")
.foregroundColor(.black)
.font(.largeTitle)
}
.padding(.leading, 25)
Divider().background(Color.black)
// }
} // VSTACK END
.padding(.top, 25)
.frame(minWidth: 0,
maxWidth: .infinity,
minHeight: 0,
maxHeight: .infinity,
alignment: .topLeading
)
.navigationBarTitle("SubView Menu Setup", displayMode: .inline)
}
.navigationViewStyle(StackNavigationViewStyle())
}
}
struct SetupMenuView_Previews: PreviewProvider {
static var previews: some View {
SetupMenuView()
}
}
import SwiftUI
struct SubView01: View {
@Environment(\.presentationMode) var presentationMode
var body: some View {
ZStack {
VStack {
Text("This is the sub view 01.")
.font(.largeTitle)
}
}
.navigationBarBackButtonHidden(true)
.navigationBarTitle("SubView01", displayMode: .inline)
.navigationBarItems(
leading:
Button(action: {
self.presentationMode.wrappedValue.dismiss()
}, label: {
Text("Cancel")
})
,
trailing:
HStack {
EditButton()
.padding()
}
)
}
}
struct SubView01View_Previews: PreviewProvider {
static var previews: some View {
SubView01()
}
}
import SwiftUI
struct SubView02: View {
@Environment(\.presentationMode) var presentationMode
var body: some View {
ZStack {
VStack {
Text("This is the sub view 02.")
.font(.largeTitle)
}
}
.navigationBarBackButtonHidden(true)
.navigationBarTitle("ASubView02",displayMode: .inline)
.navigationBarItems(
leading:
Button(action: {
self.presentationMode.wrappedValue.dismiss()
}, label: {
Text("Cancel")
})
, trailing:
HStack {
EditButton()
.padding()
}
)
}
}
struct SubView02_Previews: PreviewProvider {
static var previews: some View {
SubView02()
}
}
import SwiftUI
struct SubView03: View {
@Environment(\.presentationMode) var presentationMode
var body: some View {
ZStack {
VStack {
Text("This is the sub view 03.")
.font(.largeTitle)
}
}
.navigationBarBackButtonHidden(true)
.navigationBarTitle("SubView03", displayMode: .inline)
.navigationBarItems(
leading:
Button(action: {
self.presentationMode.wrappedValue.dismiss()
}, label: {
Text("Cancel")
})
,
trailing:
HStack {
EditButton()
.padding()
}
)
}
}
struct SubView03_Previews: PreviewProvider {
static var previews: some View {
SubView03()
}
}
import SwiftUI
struct SubView04: View {
@Environment(\.presentationMode) var presentationMode
var body: some View {
ZStack {
VStack {
Text("This is the sub view 04.")
.font(.largeTitle)
}
}
.navigationBarBackButtonHidden(true)
.navigationBarTitle("SubView04", displayMode: .inline)
.navigationBarItems(
leading:
Button(action: {
self.presentationMode.wrappedValue.dismiss()
}, label: {
Text("Cancel")
}
)
,
trailing:
HStack{
EditButton()
.padding()
}
)
}
}
struct SubView04_Previews: PreviewProvider {
static var previews: some View {
SubView04()
}
}