Ajouter un contrôleur de vue enfant au contrôleur de vue actuel
Je suis en train d'ajouter un enfant de-vue-contrôleur dans le code, à la vue actuelle du contrôleur de storyboard en utilisant le code suivant:
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Main" bundle: nil];
LogInTutorialViewController *lvc = [[LogInTutorialViewController alloc] init];
lvc = (LogInTutorialViewController *)[storyboard instantiateViewControllerWithIdentifier:@"LogInTutorialViewControllerID"];
[self displayContentController:lvc];
- (void) displayContentController: (LogInTutorialViewController*) content;
{
//add as childViewController
[self addChildViewController:content];
[content didMoveToParentViewController:self];
[content.view setFrame:CGRectMake(0, 0, [UIScreen mainScreen].bounds.size.width, [UIScreen mainScreen].bounds.size.height)];
[self.view addSubview:content.view];
}
Le point de vue semble être l'affichage sur le simulateur au moins mais dans la console j'obtiens un lot ou d'erreur:
<Error>: CGContextSaveGState: invalid context 0x0. This is a serious error. This application, or a library it uses, is using an invalid context and is thereby contributing to an overall degradation of system stability and reliability. This notice is a courtesy: please fix this problem. It will become a fatal error in an upcoming update.
Et aussi la même description, mais d'erreur différents:
CGContextSetLineWidth, CGContextSetLineJoin, CGContextSetLineCap, CGContextSetMiterLimit, CGContextSetFlatness, CGContextAddPath, CGContextDrawPath, CGContextRestoreGState
toutes ces erreurs se connecté à deux reprises.
Personne ne sait ce que je fais de mal?
aussi j'ai lu quelques posts et dans certains, il a été suggéré d'allocation et initialisation de la vue-contrôleur avant de transmettre les données, j'ai aussi essayé sans succès.
source d'informationauteur Laur Stefan
Vous devez vous connecter pour publier un commentaire.
didMoveToParentViewController doit être le dernier.
pourquoi vous n'essayez pas de ce code pour l'ajout de point de vue, je pense que celui-ci est simple et facile..
pour plus de plus amples renseignements, consultez cette lien.
Pour créer parent-enfant, relation de conteneur au moment de la conception, d'ajouter un conteneur d'objet d'affichage à votre scénario de la scène, comme le montre l'image ci-dessous. Un conteneur d'objet d'affichage est un espace réservé à l'objet qui représente le contenu d'un enfant-vue-contrôleur. Utilisez cette vue pour la taille et la position de l'enfant en vue de la racine par rapport aux autres points de vue dans le conteneur.
Lorsque vous chargez une-vue-contrôleur avec un ou plusieurs conteneurs vues, Interface Builder également en charge l'enfant de voir les contrôleurs associés à ces points de vue. Les enfants doivent être instancié en même temps que le parent afin que les relations parent-enfant qui peut être créé.
Si vous n'utilisez pas d'Interface Builder pour configurer votre parent-enfant conteneur des relations, vous devez créer ces relations par programme en ajoutant à chaque enfant pour le conteneur de-vue-contrôleur, comme décrit dans l'Ajout d'un Enfant-Vue-Contrôleur à Votre Contenu.
À intégrer un enfant de-vue-contrôleur dans votre contenu, de la programmation, de créer une relation parent-enfant entre les contrôleurs de vue en procédant comme suit:
addChildViewController:
méthode de votre conteneur de-vue-contrôleur.Cette méthode indique UIKit que votre conteneur de-vue-contrôleur est maintenant la gestion de la vue de l'enfant-vue-contrôleur.
Toujours n'oubliez pas de régler la taille et la position de l'enfant de l'image dans le cadre de ce processus.
Voici le code pour que.
Plus en détail l'explication de l'exemple est donné à Apple developer guide de programmation.
Solution rapide (Swift 4 au moment de la rédaction de ce document):
Notes: