2013-03-05 37 views
8

Ben ana denetleyicisi ve detay kontrolörü ile bir UISplitViewController var:UISplitViewController ile ana görünüm denetleyicisini ayrıntılı görünüm denetleyicisine nasıl alırsınız?

MyMasterController *masterViewController = [[[MyMasterController alloc] initWithDirectory:directoryElement] autorelease]; 
MyDetailController *detailViewController = [[MyDetailController alloc] init]; 

masterViewController.detailViewController = detailViewController; 

UISplitViewController *splitViewController = [[UISplitViewController alloc] init]; 
splitViewController.viewControllers = @[[[UINavigationController alloc] initWithRootViewController:masterViewController], [[UINavigationController alloc] initWithRootViewController:detailViewController]]; 
splitViewController.delegate = self; 

MyDetailController bir tablo liste görünümü denetleyicisi, ben hücrede tıkladığında, Yani usta nasıl alınır ne zaman görünümü denetleyicisi için zamanında bir yöntemi uzmanlaşmak isteyen kontrolörde kontrolör mü? jjv360s cevap çok yardımcı olur

- (void) tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { 

    [[NSNotificationCenter defaultCenter] postNotificationName:@"DoSomeMethod" object:nil]; 

} 

cevap

15

Ben efendin kadar yerine bildirimleri kullanmak istiyorsunuz çağrılan yönteme. takiben öğretici bana yardım etti:

http://www.devfright.com/nsnotificationcenter-tutorial/

değerini value geçmek için, bildirim gönderir sınıfta bir özellik olarak value maruz gerekir. Alıcı yöntemin, (id)'u value ortaya çıkaran sınıfa göndermesi gerekir.

+0

Bunun iyi bir fikir olduğunu düşünüyorum – why

+0

Bunun için çok teşekkürler. Tam olarak aradığım şey. Parlak!! –

+0

Mükemmel bir fikir :). Çok teşekkürler –

0

ederken, bazıları kesinlikle değer geçirmek istiyorum:

-(void) viewDidLoad { 

    ... 
    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(someMethod) name:@"DoSomeMethod" object:nil]; 

} 

-(void) someMethod { 

    ... 

} 

Ve ayrıntılı olarak:

- (void) tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    [master some_method]; // how to get ? 
} 
İlgili konular