Übergeben von Werten zwischen Master und Detail in UISplitViewController mithilfe von Storyboards

Ich habe das Protokoll in der Datei Customer.h definiert, die unten gezeigt wird:

<code>@class Customer; 
@protocol CustomerDelegate <NSObject>

-(void) didSelectCustomer:(Customer *) customer; 

@end

@interface Customer : NSObject
{

}

@property (nonatomic,copy) NSString *name; 
@property (nonatomic,copy) NSString *occupation; 

@end
</code>

Der MasterViewController (linke Seite) ruft die didSelectCustomer-Methode wie folgt auf:

<code>- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    Customer *selectedCustomer = [customers objectAtIndex:[indexPath row]];
    [self.delegate didSelectCustomer:selectedCustomer]; 
}
</code>

Jetzt muss ich den DetailViewController (rechts) anweisen, etwas zu tun. Der DetailViewController entspricht dem CustomerDelegate-Protokoll.

<code>@interface DetailViewController : UIViewController<UISplitViewControllerDelegate,CustomerDelegate>
{

}

-(void) didSelectCustomer:(Customer *)customer
{
    NSLog(@"sssdasdasdasd");
}
</code>

Die didSelectCustomer-Methode wird nie aufgerufen. Ich denke, ich muss den masterViewController.delegate = self setzen, aber ich bin nicht sicher, wo ich das Ding einrichten soll.

UPDATE 1:

Ich habe die Instanz von MasterViewController im DetailViewController hinzugefügt, aber es hat nicht funktioniert:

<code>- (void)viewDidLoad
{
    [super viewDidLoad];    

    MasterViewController *master = [[MasterViewController alloc] init];
    master.delegate = self; 
}
</code>

LÖSUNG:

In AppDelegate:

<code>  else 
    {
        UISplitViewController *splitViewController = (UISplitViewController *) self.window.rootViewController; 
        splitViewController.delegate = [splitViewController.viewControllers lastObject];



        UINavigationController *navigationController = [splitViewController.viewControllers lastObject];
       // splitViewController.delegate = (id)navigationController.topViewController;




        DetailViewController *detail =(DetailViewController *) [splitViewController.viewControllers lastObject];

        UINavigationController *masterNavigationController = [splitViewController.viewControllers objectAtIndex:0];

        MasterViewController *master = (MasterViewController *)masterNavigationController.topViewController;

        master.delegate = detail; 
    }
</code>

Antworten auf die Frage(2)

Ihre Antwort auf die Frage