সর্বনিম্ন পুনরুত্পাদনযোগ্য উদাহরণ (এক্সকোড 11.2 বিটা, এটি এক্সকোড 11.1 এ কাজ করে):
struct Parent: View {
var body: some View {
NavigationView {
Text("Hello World")
.navigationBarItems(
trailing: NavigationLink(destination: Child(), label: { Text("Next") })
)
}
}
}
struct Child: View {
@Environment(\.presentationMode) var presentation
var body: some View {
Text("Hello, World!")
.navigationBarItems(
leading: Button(
action: {
self.presentation.wrappedValue.dismiss()
},
label: { Text("Back") }
)
)
}
}
struct ContentView: View {
var body: some View {
Parent()
}
}
ইস্যু আমার স্থাপন মিথ্যা বলে মনে হয় NavigationLinkএকটি ভেতরে navigationBarItemsপরিবর্তক একটি SwiftUI দৃশ্য যার শিকড় দৃশ্য একটি হল নেস্টেড ভিতরে যে NavigationView। ক্র্যাশ প্রতিবেদনটি ইঙ্গিত দেয় যে আমি এমন একটি ভিউ কন্ট্রোলারে পপ করার চেষ্টা করছি যা অস্তিত্বহীন থাকে যখন আমি এগিয়ে যান Childএবং তারপরে ফিরে যাব Parent।
Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Tried to pop to a view controller that doesn't exist.'
*** First throw call stack:
আমি যদি পরিবর্তে NavigationLinkনীচের মত দৃশ্যের শৃঙ্খলে রাখি তবে এটি ঠিক কাজ করে।
struct Parent: View {
var body: some View {
NavigationView {
NavigationLink(destination: Child(), label: { Text("Next") })
}
}
}
এটি কি একটি সুইফটিআইআই বাগ বা প্রত্যাশিত আচরণ?
সম্পাদনা: আমি অ্যাপলের সাথে তাদের মতামত সহকারী হিসাবে আইডি সহ একটি ইস্যু খুলেছি FB7423964যদি অ্যাপল থেকে অন্য কেউ যদি ওজন করতে না পারে তবে :)।
সম্পাদনা: প্রতিক্রিয়া সহকারীতে আমার উন্মুক্ত টিকিটটি ইঙ্গিত করে যে এখানে 10+ অনুরূপ রিপোর্ট করা সমস্যা রয়েছে। তারা রেজোলিউশনটি আপডেট করেছে Resolution: Potential fix identified - For a future OS update। আঙুলগুলি পেরিয়ে গেছে যে শিগগিরই স্থির করা হবে।
সম্পাদনা: এটি আইওএস 13.3 এ স্থির করা হয়েছে!
ContentView.swift। আমি পোস্টটিতে একটি সম্পাদনা করব, তবে ক্রাশটি তখনই ঘটে যখন আপনি এগিয়ে এবং তারপরে ফিরে যান।