2013-03-08 1 views
2

J'essaye de naviguer vers une scène sans utiliser de segue. Le code que j'utilise ressemble à ceci:iOS, Définir délégué pour la scène sans utiliser segue

UIStoryboard * storyboard = [UIStoryboard storyboardWithName:storyboardName bundle:nil]; 
MyViewController * controller = (MyViewController *)[storyboard instantiateViewControllerWithIdentifier:viewControllerID]; 
[self presentViewController:controller animated:YES completion:nil]; 

Mon problème est de définir le délégué pour cette scène. Habituellement, je voudrais faire ce qui suit:

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender 
{ 
    // Check the segue identifier 
    if ([[segue identifier] isEqualToString:@"showDetail"]) 
    { 
     [[segue destinationViewController] setDelegate:self]; 
    } 
} 

Mais je ne veux pas utiliser segues. Quelqu'un peut-il me dire comment je pourrais définir le délégué pour la scène?

Merci

Répondre

2
UIStoryboard * storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil]; 
DetailViewController * controller = (DetailViewController *)[storyboard instantiateViewControllerWithIdentifier:@"DetailView"]; 
controller.delegate = self; 
[self presentViewController:controller animated:YES completion:nil]; 
0

Vous pouvez définir le délégué pour la scène que vous chargez.

Votre "destinationViewController" aura une méthode "ViewWillAppear". Là, vous pouvez définir le délégué à soi-même.

0

que vous avez déjà une référence au nouveau contrôleur que vous n'avez pas besoin de mettre en œuvre la méthode prepareForSegue:sender:, après la ligne:

MyViewController * controller = (MyViewController *)[storyboard instantiateViewControllerWithIdentifier:viewControllerID]; 

juste ajouter:

[controller setDelegate:self];