I have defined the protocol in Customer.h file which is shown below:
@class Customer; 
@protocol CustomerDelegate <NSObject>
-(void) didSelectCustomer:(Customer *) customer; 
@end
@interface Customer : NSObject
{
}
@property (nonatomic,copy) NSString *name; 
@property (nonatomic,copy) NSString *occupation; 
@end
The MasterViewController (left side) invokes the didSelectCustomer method as shown below:
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    Customer *selectedCustomer = [customers objectAtIndex:[indexPath row]];
    [self.delegate didSelectCustomer:selectedCustomer]; 
}
Now, I need to tell the DetailViewController (right side) to do something. The DetailViewController complies with the CustomerDelegate protocol.
@interface DetailViewController : UIViewController<UISplitViewControllerDelegate,CustomerDelegate>
{
}
-(void) didSelectCustomer:(Customer *)customer
{
    NSLog(@"sssdasdasdasd");
}
The didSelectCustomer method is never invoked. I think I need to set the masterViewController.delegate = self but I am not sure where to set this thing up.
UPDATE 1:
I added the instance of MasterViewController inside the DetailViewController but it did not work:
- (void)viewDidLoad
{
    [super viewDidLoad];    
    MasterViewController *master = [[MasterViewController alloc] init];
    master.delegate = self; 
}
SOLUTION:
In AppDelegate:
  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; 
    }
 
     
    