Je ne connais pas encore iOS et Xcode. Je ne vois pas comment concevoir une vue séparée et la faire ajouter dans le scénario principal UIViewController.
J'ai fait différentes approches ..
UIViewController
. Dans ViewController.m, j'obtiens la nouvelle instance UIViewController
dans viewDidLoad, puis [self.view addSubview:newUIViewController.view]
. Mais je ne peux pas voir la vue ajoutée.ViewController
. Et addSubview
avec la vue de xib. Mais cela a aussi échoué.Y a-t-il une manière correcte ou une solution de travail de le faire?
J'ai trouvé un moyen de le faire. Décrit comme suit:
Le point clé est de remplacer la méthode initWithCoder dans la classe object-c.
- (id)initWithCoder:(NSCoder *)aDecoder {
if ((self = [super initWithCoder:aDecoder])) {
[self addSubview:[[[NSBundle mainBundle] loadNibNamed:@"MyView" owner:self options:nil] objectAtIndex:0]];
}
return self;
}
L'idée est que la classe personnalisée est chargée par le storyboard et que initWithCode sera appelé. L'index 0 est la vue racine du générateur d'interface .xib.
C'est un peu délicat mais ça marche.
Dans le storyboard, faites glisser un contrôleur de vue. Le contrôleur de vue est livré avec une vue principale. Sélectionnez cette vue principale en cliquant en dehors du contrôleur de vue ajouté, puis en cliquant au centre de celui-ci. Maintenant, faites glisser un uiview ou quoi que ce soit dans cette vue principale, comme vous l'avez fait avec IB.