İçeriğe geç

Coordinator Pattern – Part 2

Merhabalar önceki yazımda girişini yaptığım Coordinator tasarım desenine bu yazımla devam ediyorum. Bu yazımda UINavigationController ile push işleminden sonra back işleminde yazdığımız sınıfın nasıl hareket etmesi gerektiğini sizlerle paylaşacağım.

addChild ve removeChild fonksiyonlarını neden kullanmamız gerektiğini bu yazımda sizlere aktaracağım.

Bildiğiniz gibi UINavigationController push ve pop işlemlerinde veri yapısı olarak Stack kullanır. Yani FİFO (First in first out) yapısı ile hareket eder. Biz Coordinator işlemlerimizde alt Coordinator oluşturursak bunları Main Coordinator içerisinde erişmek isteyebiliriz. Ve child bir VC içerisindeyken hangi coordinator ‘dan geldiğimizi öğrenmemizi sağlar. Bizde push işlemlerinde ekleyip, pop işleminde ilgili Coordinator’ dan çıkmamız gerekir. Aksi halde gereksiz yığılma olacaktır.

Bu işlem için MainCoordinator sınıfımızdaki UINavigationController nesnesine delegate bağlayıp, burdaki geri çıkma işlemlerinde ilgili Coordinator ‘u remove ediyoruz.

Mantık olarak farklı Coordinator sınıfları oluşturup bunları yönetebilirsiniz. Örneğin MainCoordinator ->SettingsCoordinator -> AlbumCoordinator vb Buradaki Settings, Album MainCoordinator sınıfının child Coordinator ‘u olacaktır.

Tarih:Design Patterns

Bu yazı yorumlara kapalı.