UIViewController Yaşam Döngüsü

Merhabalar Arkadaşlar, Bugün iOS programlamada önemli bir kavram olan UIViewController’ın yaşam döngüsünden bahsedeceğim. Projelerinizde sıklıkla ihtiyaç duyacağınız bu yapının nasıl çalıştığını öğrenip, öğrendikten sonra hangi yapıyı hangi zamanda kullanacağınızı bilerek kodlayacaksınız. Swift ile kodlamanın zevkine ulaşarak birbirinden farklı güzel projeler yapabileceksiniz. Hazırsanız haydi zaman kaybetmeden yazımıza geçelim 🙂


UIViewController Nedir?

UIKit(User Interface Kit) kütüphanesinin bir sınıfı olan UIViewController, iOS uygulamalarında gördüğünüz herhangi bir sayfayı yöneten yapıya denir. Temel işlevi, arayüz elemanlarını bir araya getirmek ve kullanıcıların ekrana dokunarak etkileşime girmesini sağlar. UIViewController, Tabiri caizse iOS uygulamalarda olmazsa olmaz bir yapıdır.

Yazılım dünyasından örnekler vermek gerekirse ;

  • Apple telefonlarında “Ayarlar” sayfası
  • Twitter’da Tweet atma sayfası
  • Facebook’ta gönderi paylaşma sayfası
  • Instagram’da fotoğraf veya video ekleme sayfası
  • WhatsApp’ta “Sohbetler” sayfası
  • Telegram’da “Grup” sayfası

UIViewController Görevleri

Bir UIViewController sınıfını ara sıra direkt kullanırsınız. Direkt kullanım yerine tavsiye edilen kendinizin UIViewController’dan türemiş (inherit) olmuş sınıflar oluşturup kullanmanızdır. Örnek vermek gerekirse: MessageViewController. Uygulamanızda böyle bir ViewController’ınız varsa mesajlaşma işlemlerini yaparsınız. Gerekli objeleri ve fonksiyonları oluşturabilirsiniz.

UIViewController’ın Ana Görevleri;

  • Yönettiğiniz ekranlarda(screen) bulunan UIView nesnelerinde gerçekleşen değişiklikleri göre verileri günceller, verileri siler ya da verileri revize eder.
  • Kullanıcı ile UIView nesneleri arasındaki koordinasyonu sağlar.
  • Arayüz elemanlarını yeniden boyutlandırır ve genel arayüzün düzenini kolayca yönetebilir.
  • Uygulamanızdaki diğer ViewController’lar da dahil olmak üzere objeler ile koordineli bir biçimde çalışır.

UIViewController Yaşam Döngüsü

1) ViewDidLoad

viewDidLoad fonksiyonu UIViewController’ın yaşam döngüsünde sadece 1 defa çalışır. Çağırıldığı zaman, ViewController’ınız oluşturulduğunu ve kendisine bağlı tüm IBOutlet’lerin hazır hale geldiğini rahatlıkla anlayabilirsiniz. Örnek olarak internetten bir defaya mahsus veri çekmeniz gerekiyorsa viewDidLoad fonksiyonu kullanılır. Hava durumu uygulaması yaparken bu fonksiyonun altında veri çekme işlemlerini yapabilirsiniz.

2) ViewWillAppear

viewWillAppear fonksiyonu, UIViewController ekranda gözükmeden önce çağrılır.Örnek olarak uygulamadaki belli başlı alanları gizlemek ya da göstermek istediğinizde kullanılabilir. Ana ekranı göstermeden önce çalışma zamanında her zaman göstermek istediğimiz yapılar için kullanılır.

3) ViewDidAppear

viewDidAppear fonksiyonu, UIViewController gösterildikten sonra çağrılır. Bir önceki fonksiyonumuzdan farklı olarak o UIViewController gösterilmeden önce çalışırken bu fonksiyonumuz ise UIViewController çalıştıktan sonra çalışıyor. Örnek olarak: viewDidAppear fonksiyonun içinde bir animasyonu başlatma ya da durdurma işlemlerini yapabilirsiniz. Diğer bir örnekteyse API’dan verilerin yüklenmeye başlaması için en uygun fonksiyondur diyebiliriz. API’larla çalışırken yaşam döngülerine dikkat ederek geliştirme yapılırsa projeniz daha doğru kodlanmış olur.

4) ViewWillDisappear

viewWillDisappear, viewWillAppear fonksiyonuna benzemektedir. Bir UIViewController objesi ekrandan kaybolmadan hemen önce çalışmaktadır. viewWillDisappear fonksiyonuda UIViewController objesinin yaşam döngüsü boyunca birçok defa çalışıp içerisinde bulunan işlemleri gerçekleştirir. Örnek olarak: Kullanıcı farklı bir sayfaya geçmeye başladığında bu fonksiyon çalışır. Instagram uygulamasında ana ekrandan profil ekranına geçiş yapılmaya başlandığında viewWillDisappear fonksiyonu tetiklenir.

5) ViewDidDisappear

viewDidDisappear, fonksiyonu bir UIViewController objesinin ekrandan kaybolmasıyla beraber çalışan fonksiyondur. Ekran kaybolduktan sonra arka planda çalışmaya devam etmesini istemediğiniz işlemler için bu fonksiyonu override edebilirsiniz. Örneğin Netflix’te dizi izlerken telefonunuz çaldı ve telefonu cevapladığınız anında Netflix arka plana atar. Arka planda çalışmaması gerektiği için bu fonksiyonun içerisinde bu işlemi rahatlıkla gerçekleştirebiliriz.


Evet arkadaşlar UIViewController’ın ne olduğunu ve temel anlamda ne gibi işlevlerinin bulunduğunu öğrendikten sonra yaşam döngüsünü de öğrenmiş olduk. UIViewController yaşam döngüsünü tam anlamıyla kavrayabilirseniz yaptığınız projelerden daha fazla verim alacaksınız. Bir sonraki yazıda görüşürüz kendinize iyi bakın 🙂

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir