Ah no gurda sono riuscito a risolvere così:
-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender{
UIButton *pressed = (UIButton*)sender;
LDSong *songToSend = [savedMusic objectAtIndex:pressed.tag];
if([segue.identifier isEqualToString:@"song"]){
ViewController *detail = (ViewController*)[segue destinationViewController];
detail.song = songToSend;
}
else if([segue.identifier isEqualToString:@"play"]){
UITabBarController *tab = (UITabBarController*)[segue destinationViewController];
NSArray *controllers = [tab viewControllers];
UINavigationController *play;
for(UINavigationController *view in controllers){
if([[view title] isEqualToString:@"Playing"]) play = view;
}
PlayViewController *toReproduct = [[play childViewControllers] objectAtIndex:0];
toReproduct.playing = songToSend;
toReproduct.codaRiproduzione = savedMusic;
toReproduct.songIndex = pressed.tag;
[tab setSelectedViewController:play];
}
}
La funzione(che sovrascrive quella di uiviewconroller) viene richiamata automaticamente alla pressione di qualunque tasto(segue) nel viewcontroller(che appunto estende la classe uiviewcontroller). basta dare un id al segue nella storyboard e fare un controllo su quello per distinguere l'azione che verrà fatta. Ovviamente quello che verrà scritto all'interno degli if(){}elseif{} lo devi decidere tu in base a quello che vuoi fare.