uzun zamandır bu hatayı alıyorum ama nerden kaynaklandığını çözemedim, diğer projelerdede aynı hata var nasıl düzeltebilrim, ve viewcontroller sayfasına giriş yaptıktn sonra hoşgeldiniz sayfasının açılmasını sağlayan kodu yazdım ancak diğer sayfaya geçiş yapmıyor showAlert(withTitle: "Giriş Başarılı", message: "Hoşgeldiniz!") performSegue(withIdentifier: "Hosgeldiniz", sender: self) }
Swift uzmanlık alanım değil fakat burada ele alınması gereken iki ana konu var: segue (geçiş) tanımlaması ve potansiyel bir hata nedeniyle bu geçişin tetiklenememesi.
<code>performSegue(withIdentifier:sender:)</code> metodunu çağırdığınızda kullandığınız segue identifier'ın (tanımlayıcı) storyboard üzerinde tanımlanan identifier ile aynı olduğundan emin olun. Paylaştığınız kodda <code>"Hosgeldiniz"</code> identifier'ını kullanıyorsunuz, ancak <code>prepare(for:sender:)</code> metodunda <code>"HosgeldinizViewcontroller"</code> tanımlayıcısını kontrol ediyorsunuz. Bu iki tanımlayıcının birbiriyle uyumlu olduğundan emin misiniz?
Storyboard üzerinde doğru ViewController'lar arasında segue'nin bağlantısının yapıldığından emin olun. Bazen yanlış ViewController'a segue bağlantısı yapılırsa veya ViewController sınıfı doğru atanmamışsa geçiş başarısız olabilir.
Kodunuzda "Thread 1: Breakpoint 1.1" şeklinde bir hata mesajı almışsınız. Eğer Xcode'da manuel olarak bir breakpoint koymadıysanız, bu durum genellikle bir hata nedeniyle kodun durdurulduğunu gösterir. Kodda herhangi bir yazım hatası veya eksik referans olup olmadığını kontrol edin. Projeyi temizleyin (<code>Product > Clean Build Folder</code>) ve yeniden derleyin (<code>Product > Build</code>).
Giriş başarılı olduktan sonra bir alert gösterip, bu alert kapatıldıktan sonra geçişi tetikliyorsanız, geçişin alert kapatıldıktan sonra yapılmasını sağlamak için <code>UIAlertAction</code>'da segue'yi çağırın:
showAlert(withTitle: "Giriş Başarılı", message: "Hoşgeldiniz!")
performSegue(withIdentifier: "Hosgeldiniz", sender: self)
}
func showAlert(withTitle title: String, message: String) {
let alertController = UIAlertController(title: title, message: message, preferredStyle: .alert)
let okAction = UIAlertAction(title: "Tamam", style: .default)
alertController.addAction(okAction)
present(alertController, animated: true)
}
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if segue.identifier == "HosgeldinizViewcontroller" {
}
}
}
< Resime gitmek için tıklayın >
< Resime gitmek için tıklayın >
DH forumlarında vakit geçirmekten keyif alıyor gibisin ancak giriş yapmadığını görüyoruz.
Üye Ol Şimdi DeğilÜye olduğunda özel mesaj gönderebilir, beğendiğin konuları favorilerine ekleyip takibe alabilir ve daha önce gezdiğin konulara hızlıca erişebilirsin.