Programmation iOS: clarifications sur Root View Controller
Par le biais de cette question, je voudrais savoir, si je comprends bien la notion de Racine-Vue-Contrôleur.
Dans l'iOS de l'application, la Racine-Vue-Contrôleur (RVC) est le contrôleur dont la vue est ajoutée à la UIWindow l'application au démarrage, n'est-ce pas vrai?
[window addSubview:rvcController.View];
[window makeKeyAndVisible];
Maintenant, un UIWindow a aussi un rootViewController de la propriété. Lors de l'exécution du fragment de code précédent de code, cette propriété est renseignée avec la rvcController ou dois-je définir explicitement?
Puis, dans un UINavigationController il est possible de définir une TVR qui est différente de la précédente TVR définie pour le point d'entrée.
Dans ce cas, la première fois que j'ai ajouter un contrôleur de la navigationController de la pile (en appuyant sur un nouveau contrôleur), le cadre établi que le contrôleur de la TVR pour la navigationController ou dois-je définir explicitement par initWithRootViewController
méthode?
source d'informationauteur Lorenzo B
Vous devez vous connecter pour publier un commentaire.
Ya.. quand j'ai commencé l'iPhone dev.. le rootViewController chose m'a jeté pour une boucle de trop. Mais c'est vraiment simple.
au démarrage de l'application, j'ai créer un UIWindow objet de mon application délégué de classe. Aussi, dans cette classe, j'ai une propriété de type UIWindow on appelle la fenêtre;
J'ai ensuite créer un
UIViewController
dontview
sera la première vue dans la fenêtre de hiérarchie, ce qui pourrait être appelé la "racine-vue-contrôleur".La confusion de la partie est...que, souvent, nous créons un
UINavigationController
comme la "racine-vue-contrôleur" et que la manette de navigation a une méthode init qui demande un "RootViewController", qui est la première viewcontroller il place sur sa pile.Donc, la fenêtre devient une "racine-vue-contrôleur", qui est le
UINavigationController
qui a également un RootViewController, qui est le premier-vue-contrôleur que vous souhaitez afficher.une fois que vous sorte que, de son tous les sens.. je pense 🙂
voici un code qui fait tout.. (prises à partir d'un projet que j'ai ouvert en face de moi)
Vous devez définir explicitement, et si vous le faites, vous pouvez supprimer le
addSubview
ligne, parce que c'est géré automatiquement lorsque vous définissez une vue de la racine de contrôleur.Bien sûr, une manette de navigation de vue de la racine contrôleur n'a rien à voir avec celui de la fenêtre.
initWithRootViewController est juste un raccourci pour l'initialisation d'un vide manette de navigation et de pousser le premier (racine) - vue-contrôleur sur la pile. Notez que
rootViewController
n'est pas une propriété deUINavigationController
vous auriez accès via[navController.viewControllers objectAtIndex:0]
.tout d'abord, vous pouvez créer Un projet vide dans Xcode. après l'ajout d'un nouveau fichier sur objectivec classe view controller avec xiv. maintenant, vous pouvez ajouter ce code dans appdeligate.m
et de définir la rootviewcontroller dans appdeligate
REMARQUE:- ViewController.h importer de la appdeligate.m
}
}