Vous pouvez instancier une classe UIViewController
par programmation avec initWithNibName:bundle:
et spécifier la même pointe pour plusieurs contrôleurs. Par exemple, je suis en train de construire un jeu qui a une classe GameController
qui définit la logique du jeu de base. Le GameController
a un associé GameController.xib
fichier qui est chargé dans un initialiseur personnalisé:
- (id)initWithOptions:(NSDictionary *)gameOptions
{
if (self = [super initWithNibName:@"GameController" bundle:nil])
{
// code here
}
return self;
}
J'ai quelques types de jeu différents: peer-to-peer, local, & en ligne. La logique du jeu est la même, mais l'implémentation de la communication est légèrement différente, de sorte que chacun d'entre eux est une sous-classe de GameController
. Sur la base de la façon dont l'application est utilisée, il va instancier un autre contrôleur:
local = [[LocalGameController alloc] initWithOptions:options];
online = [[OnlineGameController alloc] initWithOptions:options];
Vous pouvez voir que si ces deux depuis s'étendre GameController
, que ces deux seront init'ed avec GameController.xib
comme son point de vue. Dans ce cas, GameController
serait votre propriétaire de fichier unique.
Je pense que vous pourriez également spécifier une '@ interface' pour le propriétaire du fichier, si vous voulez le faire un peu plus proprement. –
C'est un bon conseil Kristopher. Merci les gars. – colm