Saya sedang mengerjakan aplikasi dengan login dan setelah login ada kategori yang terdaftar. Dan di bawah setiap kategori ada beberapa item yang terdaftar secara horizontal. Masalahnya adalah setelah login, halaman utama muncul dan semuanya terdaftar dengan baik. Ketika Anda mengklik pada suatu item ia pergi ke layar terperinci tetapi ketika Anda mencoba untuk kembali itu hanya crash. Saya menemukan aliran ini. Mengapa aplikasi SwiftUI saya mogok ketika menavigasi mundur setelah menempatkan `NavigasiLink` di dalam` navigationBarItems` dalam `NavigationView`? tetapi saya tidak bisa menyelesaikan masalah saya. Karena proyek saya menjadi rumit, saya hanya ingin berlatih navigasi di swiftui dan saya membuat proyek baru. Ngomong-ngomong, saya mengunduh xcode versi terbaru 11.3. Saya menulis kode sederhana sebagai berikut:
NavigationView{
NavigationLink(destination: Test()) {
Text("Show Detail View")
}
.navigationBarTitle("title1")
Dan tampilan Test () adalah sebagai berikut:
import SwiftUI
struct Test: View {
var body: some View {
Text("Hello, World!")
}
}
struct Test_Previews: PreviewProvider {
static var previews: some View {
Test()
}
}
Seperti yang Anda lihat, ini sangat sederhana. Saya juga mencoba contoh serupa di internet tetapi tidak berfungsi sebagaimana mestinya. Ketika saya menjalankan proyek, saya mengklik tautan navigasi dan menavigasi ke tampilan Test (). Lalu saya klik tombol kembali dan itu menavigasi ke halaman utama. Namun, ketika saya mengklik tautan navigasi untuk kedua kalinya, tidak ada yang terjadi. Tautan navigasi hanya berfungsi sekali dan setelah itu tidak ada yang terjadi. Itu tidak menavigasi, itu tidak membuang kesalahan. Saya baru mengenal swiftui dan semuanya hebat kecuali navigasinya. Saya mencoba banyak contoh dan menyarankan solusi di internet, tetapi sepertinya tidak ada yang memperbaiki masalah saya.
sumber
Jawaban:
[UPDATE] 12 Februari 2020 - Saya memeriksa masalah ini dalam Xcode 11.4 beta dan menemukan bahwa masalah ini telah diselesaikan.
Saya mendapatkan masalah yang sama di proyek saya juga, ketika saya mengujinya di simulator Xcode. Namun, ketika saya meluncurkan aplikasi pada perangkat nyata (iPhone X dengan iOS 13.3),
NavigationLink
berfungsi dengan sangat baik. Jadi, itu benar-benar tampak seperti bug Xcode.sumber
Simulator 11.4: Masalah ini telah diperbaiki
Anda harus mengatur ulang nilai default
isActive
di tampilan kedua. Ini bekerja pada perangkat dan emulator.sumber
onDisappear
akan dipanggil setelahisActive
itu salah sehingga NavigationView tidak akan berfungsi dengan baik. Ini solusi sementara untuk emulator hanya karena NavigationView berfungsi dengan benar di perangkat. Pada emulator versi sebelumnya, NavigationView berfungsi, saya harap ini akan diperbaiki di emulator masa depan.Agaknya ini akan teratasi ketika Apple memperbaiki bug terkait yang mencegah 13,3 agar tidak dapat dipilih sebagai target penyebaran .
Saya mengalami masalah yang sama dengan orang lain. Masalah ini hadir dalam simulator dan pratinjau yang berjalan 13.2, tetapi sudah diperbaiki ketika menggunakan perangkat saya sendiri yang menjalankan 13.3.
sumber
Sebagaimana @ Александр Грабовский mengatakan sepertinya bug Xcode 11.3, saya menghadapi masalah yang sama, Anda harus menurunkan versi atau menggunakan solusi seperti tombol kembali kustom seperti di bawah ini
sumber