Enfants, les contrôleurs doivent avoir un parent commun-vue-contrôleur?

Dans mon application j'essaie de changer de vue dont chacune leur propre XIB tout en utilisant des animations personnalisées pour le faire. J'ai fait une vue de la base de contrôleur en tant que parent vue de tenir tout le code mais je n'arrive pas à obtenir que cela fonctionne.

J'ai fait un IBOutlet pour l'ensemble de la vue des contrôleurs dans mon application et dans interface builder, je me connecte les prises pour le bon contrôleur. Chaque contrôleur de charge de la bonne XIB aussi, de sorte que rien de tout cela est la question. La question est la suivante changer la vue de code.

C'est mon code:

-(void)changeViews {
    CGRect frame = self.view.frame;
    frame.origin.x = CGRectGetMaxX(frame);
    theView4.view.frame = frame;

    [self.view addSubview:theView4.view];
    [self addChildViewController:theView4];

    [self transitionFromViewController:theView1 
                      toViewController:theView4 
                              duration:1 
                               options:UIViewAnimationOptionTransitionNone
                            animations: ^{
                                CGRect frame = self.view.frame;
                                theView4.view.frame = frame;
                                frame.origin.x -= frame.size.width;
                                self.view.frame = frame;
                            }
                            completion:completion:nil];

Et c'est la console crash:

*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'Children view controllers <MyGameViewController: 0x1dd25210> and <Settings: 0x1dd249d0> must have a common parent view controller when calling -[UIViewController transitionFromViewController:toViewController:duration:options:animations:completion:]'

Personne ne sait comment résoudre ce problème?

Merci!

C'est quoi exactement les "Paramètres" de la classe? Comment est-il défini?
Les paramètres de la classe est un UIViewController qui est déclarée dans le fichier d'en-tête, settered et gettered et se connecter à un View Controller prise dans Interface Builder qui est connecté à l'Paramètres de la plume et de la classe par l'intermédiaire de ses attributs.

OriginalL'auteur SimplyKiwi | 2012-04-17