TabbarController Veri Alışverişi

TabbarController veri alışverişi nasıl yapılır öğreniyoruz 📖

Bildiğiniz üzere UITabbarController, iOS uygulamalarında altta bulunan ve birbiri ardına geçiş yapabileceğiniz güzel bir yapı.

Özellikle kullanıcı profil sayfası olan mobil uygulamalarda sıkça gördüğümüz UITabbarController, sıkça kullanılan sayfalara erişmek için kullanıldığında daha da güzel bir kullanıcı deneyimi sunuyor fakat bazen UITabbarController sahneleri arasında veri paylaşımı yapmak isteriz.

Bu derste bunu öğreneceğiz.

 

Başlıyoruz… 🔨

TabbarController: Örnek Uygulama

Örnek uygulamamızda tabbar controller ın ilk ekranından ikinci ekranına veri aktarımı yapacağız.

Öncelikle şekildeki gibi bir yapı ortaya çıkaralım.

 

1. ve 2. ekran için ViewController oluşturup bunların bağlantısını yapalım.

 

Yeni bir CocoaPod class ı oluşturun, UITabbarController dan inherit etmesine dikkat edin ve gri renkteki tab bar controller ın bağlantısını yapalım.

 

1 ve 2. renkli ekrandaki IBOutlet bağlantılarını yaptığınızı varsayıyorum.

TabbarController da veri göndermek değil aslında veri paylaşmak diye bir durum var.

Yani alışık olduğumuz gibi prepareforsegue yapısını kullanarak bir sahneden diğerine veri göndermiyoruz.

Onun yerine tabbarcontroller ekranlarının ortaklaşa kullandığı controller sayfasına verip yazıp veri okuyoruz.

 

Bu yüzden BaseTabbarVC de ortak kullanacağımız bir değişken yaratalım.

 

Şimdi FirstVC de Gönder butonuna bastığımız zaman gitsin BaseTabbarVC nin içndeki değişkene veri yazsın.

 

SecondVC de ise bu veriyi okuyup label a bastıralım.

 

Bütün işlem bu kadar.

Projeyi çalıştıralım, bakalım neye benzemiş 🧐

dgkEU5MO4V.gif

 

Olayı hallettik…

Ne yaptık?

  • 1. TabbarController sahnesinde paylaşmak istediğimiz string i ortak değişkene yazdık.
  • 2. TabbarController sahnesinde ise ortak değişkenden veriyi okuduk ve ekrana yazdık.

Fakat çok önemli bir konuda uyarmak istiyorum.

2. ekrandaki label ın değerini viewDidLoad içinde değiştirdiğimiz için bu işlem sadece bir kere çalışacak.

Yani siz 1. UITabbarController sahnesinden 2. ye bir string gönderdiniz, sorun yok fakat 2. kez geri dönüp baktığınızda değişiklikleri göremeyeceksiniz çünkü viewDidLoad metodu o ViewController için sadece bir kez çalışır.

Eğer viewDidLoad yerine viewWillAppear içinde yazarsak ilerde debug ederken saç baş yolmayız 🙂

Screen Shot 2018-09-17 at 8.24.15 PM.png

 

Şimdi tabbarcontroller sahneleri rahatlıkla veri alışverişi yapabilirsiniz.

 

Kaynak kodu ve projeyi iOS Notları – Github sayfasından edilebilirsiniz.

 

Yorum, görüş ve öneriler için yorum bırakmayı unutmayalım 🙂

 

İyi kodlamalar 💻

Kimler Neler Demiş?

avatar
  Subscribe  
Bildir