Ö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.
