6 votes

Lorsque j'utilise prepareForSegue pour transmettre une valeur au contrôleur de l'objectif, il y a quelques problèmes

Tout d'abord, j'utilise le storyboard pour créer deux uiviewcontroller : contrôleur de première vue y secondviewcontroller . Et en utilisant xcode pour intégrer un uinavigationcontroller en secondviewcontroller (éditeur --> intégrer dans --> contrôleur de navigation) . Ensuite, je veux aussi utiliser le segue pour passer la valeur du premier au second. voici le code :

-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
    if([segue.identifier isEqualToString:@"passValue"])
    {
        secondViewController *saveViewController = [segue destinationViewController];
        [saveViewController setValue:data forKey:@"data"];
    }
}

Mais il y aura un rapport d'erreur, le journal est le suivant : Terminer l'application en raison d'une exception 'NSUnknownKeyException', motif : '[ setValue:forUndefinedKey :]: cette classe n'est pas conforme au codage de la valeur de la clé pour les données de la clé.

Cependant, lorsque je supprime le contrôleur de navigation que j'utilise Xcode pour l'insérer et que je définis la barre de navigation par code, ce problème disparaît. Je suppose que la raison en est que le véritable contrôleur de vue de destination est contrôleur de navigation au lieu de secondviewcontroller . Donc si je veux réserver le contrôleur de navigation qui est intégré par Xcode, comment puis-je résoudre ce problème ?

12voto

Johnnywho Points 3058

Vous avez raison, destinationViewController sera un UINavigationController vous avez secondViewController intégré dans. Essayez donc :

secondViewController *saveViewController = [[segue destinationViewController] topViewController];

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X