2012-01-24 21 views
22

Hikaye panosundan önce delegeleri ve veri kaynaklarını yalnızca bir çıkışa bir sınıfa sürükleyerek ayarlayabildim. Hikaye panosu ile çıkışı başka bir denetleyiciye sürükleyemiyorum; buna cevap verecek bir hedef yok.Storyboard - delegeleri ayarlama

Bir denetçi denetleyicisi nesnesini tıklatırsam, altta sınıf sahibini görebiliyorum, ancak çıkışı içeren diğer görünüm denetleyicisini seçer seçmez, eski seçim bitti, bu yüzden bağlantı kuramıyorum. iki.

Bu Apple'ın, bunları yalnızca program aracılığıyla bağlamamız gerektiğini söylemenin yolu nedir?

cevap

27

Doğru. Delegeyi veya prepareForSegue:sender: yönteminizdeki diğer verileri ayarlayın. senin film şeridi segue hedef View Controller bir UIViewController ise

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender 
{ 
    // Check the segue identifier 
    if ([segue.identifier isEqualToString:@"showDetail"]) 
    { 
     // Get a reference to your custom view controller 
     CustomViewController *customViewController = segue.destinationViewController; 

     // Set your custom view controller's delegate 
     customViewController.delegate = self; 
    } 
} 
+3

Nasıl UISplitViewController için temsilci ayarlama hakkında? Ben baktığım örnek kod bu gibi pencerenin kök görünümü denetleyicisine alarak ele alır: 'UISplitViewController * splitViewController = (UISplitViewController *) self.window.rootViewController;' Teknik olarak doğru ve çalışırken, gerçekten gibi görünüyor Hoş bir şekilde delegeler ile karşılaştırıldığında kirli yaklaşım ve denetleyicileri, storyboard'lardan önce ... –

0

sonra @Marco cevap haklı: İşte bir örnek. Hedef View Controller sonra UINavigationViewController Ama eğer sen UINavigationViewController gelen UIViewController almak zorunda:

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender 
{ 
    // Check the segue identifier 
    if ([segue.identifier isEqualToString:@"chooseCategoryType"]) 
    { 
     // Get a reference of your custom view controller if your segue connection is an UIViewController 
     // CustomViewController *customViewController = segue.destinationViewController; 
     // Get a reference of your custom view controller from navigation view controller if your segue connection is an UINavigationViewController 
     CustomViewController *customViewController = [[[segue destinationViewController] viewControllers] objectAtIndex:0]; 

     // Set your custom view controller's delegate 
     customViewController.delegate = self; 
    } 
}