22 Eylül 2012

Objective-C İki ViewController arasında veri aktarma

ile hasan

Objective-C’de iki ekran yani iki viewController arasında veri aktarmanın çeşitli yolları var. Eğer storyboard üzerinde A ekranından (AviewController) B ekranına (BviewController) segue (geçiş) tanımlanmışsa bu geçiş yapılmadan hemen önce – (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender fonksiyonunu kullanarak B’nin bir değişkenine değer aktarabiliriz.

Bunun için öncelikle BviewController.h dosyası AviewController.h dosyasında import edilir. Böylece B nesnesi A’da kullanılabilir.

#import BviewController.h

Sonra AviewController.m dosyası içerisinde  – (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender fonksiyonu tanımlanır.

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender{
  if ([[segue identifier] isEqualToString:@"segDeneme"])   //birden fazla segue varsa storyboard üzerinde seguenize bir isim vermelisiniz.
  {
    BViewController *bvc = [segue destinationViewController];
    bvc.stringDegisken=@"A'dan B'ye selam olsun";  //tabi BviewController'da string tipinde stringDegisken isimli bir değişkenin tanımlandığını varsaydık

  }
}

Bir sonraki yazıda BviewController’da işimiz bitince AviewController’a nasil veri gönderebileceğimize değineceğim.