সর্বনিম্ন পুনরুত্পাদনযোগ্য উদাহরণ (এক্সকোড 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
। আমি পোস্টটিতে একটি সম্পাদনা করব, তবে ক্রাশটি তখনই ঘটে যখন আপনি এগিয়ে এবং তারপরে ফিরে যান।