Öncelikle elimizde MasterViewController ve DetailViewController adında iki sınıfımız olsun. Amacımız master'dan detail'a bir integer değer aktarmak. Bunun için master'ımıza DetailViewController'a ulaşmak için MasterViewController.h'ye tanımlamamız gerekir.
#import UIKit/UIKit.h @class DetailViewController; //Tanımlama @interface MasterViewController : UITableViewController{ DetailViewController *dvc; int *a; // aktarılacak olan değişken } - (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil; @property (nonatomic, retain) DetailViewController *dvc; @property (nonatomic)int a; @end
interface'e yazdığımız dvc ismindeki DetailViewController objesini implementasyon kısmında kullanacağız.
#import "MasterViewController.h" #import "DetailViewController.h" //Aktarım için bu sınıfın import edilmesi gerekir @implementation MasterViewController @synthesize dvc; @synthesize a = _a; - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { if(dvc != nil) [dvc dealloc]; self.a = 5; dvc = [[DetailViewController alloc] initWithNibName:@"DetailViewController" bundle:nil]; dvc.b = [self a]; // Aktarım işlemi burada gerçekleşiyor [self.navigationController pushViewController:bvc animated:YES]; } @end
Gördüğünüz üzere, interface'de nonatomic olarak tanımlanan objemizin değerini diğer sınıftaki integer tanımlı b objesine aktardık. DetailViewController sınıfında da a objesi gibi interface'e sadece nonatomic tanımlarsanız veri geçişi başarılı bir şekilde gerçekleştirilecektir.