SwiftUI: NavigationView Kullanımında Kök Görünüme Erişmek

Ceren
2 min readMay 16, 2020

--

Teknik Özellikler: SwiftUI, Swift 5, XCode 11.4

3 SwiftUI sayfası içerisinde Navigation View — Link kullanarak gezinti yapacağız. Bu süreçte isDetailLink, Binding ve State ‘i inceleyeceğiz.

Senaryo gif üzerinde gösterilmiştir. Kısaca uyarlayacak olursak herhangi bir uygulamada oturum açma işlemlerini gerçekleştirdiğimizi de düşünebiliriz. Bir karşılama sayfası, ardından kullanıcı adı ve parola giriş sayfası ve kontrollü bir şekilde ana sayfaya geçiş yapılabilir. Ana sayfa içerisinden ise oturumu kapat gibi bir butonla karşılama sayfasına dönüş yaptırılabilir.

Böyle bir süreci SwiftUI ile yönetirken dikkat etmemiz gereken nokta isDetailLink ve State taşınmasıdır.

Ekran Görüntüsü

Sayfa 1 içerisindeki nesnelerimizi NavigationView nesnesi içerisine yerleştiriyoruz. Bu sayfanın görülme durumunu hafızada tutarak diğer sayfalara taşımamız gerekiyor. Bunun için bir durum değişkeni kullanıyoruz.

https://gist.github.com/cmlcrn17/770799f7cf1791947efcdb86158283bc

Sayfa 2 içerisinde ise bir @Binding değişkeni göreceksiniz. Bu değişken ile Sayfa 1 içerisinden gelen durumu taşıyoruz.

İlk sayfada Durum False olarak işaretlenerek başlatılıyor. 2. Sayfaya geçerken Durum True olarak atanıyor.

Sayfa 1 Ekran Görüntüsü

Sayfa 2 ye git butonuna tıklanıldığında aktifMi değişkeninin True olarak atandığını görüyoruz.

Sayfa 3 e geçerken Binding değişkenimiz True olarak taşınmaya devam ediyor.

Sayfa 3 içerisindeki bağ değişkenini FALSE olarak atadığımızda Sayfa 1 e dönülüyor.

Bu kısımda dikkat edilmesi gereken nokta isDetailLink komutudur.

https://gist.github.com/cmlcrn17/8a3c7139fe0d05d30b0fb91758c758d1

Sayfa 2 içerisinden 3 e geçiş yapılırken NavigationLink e ait olan isDetailLink özelliğini FALSE veriyoruz. Bu özellik bir sonraki sayfanın detay sayfa olmadığını belirtiyor.

Bu şekilde iç alt bir bölüm olan Sayfa 3 içerisinden karşılama sayfanıza (Sayfa 1) dönüş yapabilirsiniz.

Github: https://github.com/cmlcrn17/SwiftUI-NavigationView

Stack Overflow: https://stackoverflow.com/questions/57334455/swiftui-how-to-pop-to-root-view

--

--

No responses yet