Swift | UINavigationController ile View Controller yönetmek

Beyza Sığınmış
Kodluyoruz
Published in
3 min readMay 5, 2021

--

Perform segue yerine, push view controller kullanımı

Herkese selam, sizlere swift öğrenme sürecimde karşılaştığım daha iyi bir kullanım yaratabileceğimiz bir yaklaşımdan bahsetmek istiyorum.

Yazdığım bir kod bloğuna gelen büyük projelerde kullanımının karışıklığa sebep olabileceği feedback’ine karşılık olarak, perform segue kullanımını nasıl geliştireceğimizi senaryo üzerinden birlikte örnekleyelim;

Bunun için ilk olarak 2 adet View Controller yaratıyorum, birinin arka planını pembe diğeri ise sarı olsun istiyorum;

Yaratma işlemlerinden sonra her iki storyboard’um için ID tanımlıyorum,

Şimdi ise burada iki storyboard arasındaki geçişlerimi düzenleyecek olan navigasyonumu yaratmalıyım, bunun için aşağıdaki controller’ı yaratıp kod tarafına geçiyoruz.

viewcontrollerimizi, navigation controllerin “rootviewcontrolleri” olarak tanımlıyoruz
istediğimiz işlevselliği bize gösterecek olan yer burası aslında, butonlarımızı yarattık

Şimdi ise butonlarımızın fonksiyonlarını yarattık, asıl istediğimi gerçekleştirmeden önce kod tekrarını önlemek için UIStoryboard’a extension yazarak temiz bir başlangıç hazırlıyoruz.

Storyboard nesnesini yarattıktan sonra kullanacağımız method instantiateInitialViewController, bütün işi bu arkadaş yapacak 🤤 Açıklamadan da gördüğümüz üzere verdiğimiz identifier’ı alarak başlatmamızı sağladığını söylüyor.

Şimdi ise asıl istediğim yere geldim, navigation controller’ıma buraya instantiate metodu ile yarattığım view controller’ıma gitmesini söyleyen büyülü push metodu ✨

diğer buton için de aynı fonksiyonu yazıyoruz
kodlarımız tam olarak böyle olmalı 🍼

Ve sonuç,

Bu yöntem push harici bir çok method imkanı da sağlıyor, öğrenme döneminde iseniz deneyip hepsini pratik yapmanızı tavsiye ederim.

Eğer büyük bir projede birden fazla storyboard viewcontroller ile çalışıyorsanız yönetmesinin zorlaşması, çok ekranın segueler ile yönetilmesi ortalığı ok havuzuna çevirmesi sebebiyle bu kullanım çok daha esnek bir yapı sağlıyor.

Tavsiyeleriniz, yönlendirmeleriniz çok değerli olacaktır. Geri dönüşlerinizi bekliyorum, bir sonraki swift maceramda görüşmek üzere 🌸

--

--