Vidéo: LA LISTE COMPLÈTE DES YOUTUBERS DU QUÉBEC 2019 2025
Vous pouvez supprimer l'objet Contrôleur Vue détaillée du storyboard iPad pour notre application iOS (mais veillez à ne pas supprimer les fichiers de classe du contrôleur DetailView dans le navigateur de projet). Vous allez remplacer la relation entre le contrôleur de vue partagée et le contrôleur de vue détaillée par une au contrôleur Météo.
Le contrôleur Météo a été choisi arbitrairement ici - vous pourriez tout aussi bien l'avoir remplacé par n'importe lequel des autres contrôleurs de vue. C'est l'affichage détaillé que l'utilisateur verra quand l'application est lancée.
Les étapes suivantes vous montrent comment remplacer le contrôleur de vue détaillée.
-
Dans le plan du document ou sur le canevas, sélectionnez le contrôleur de navigation associé au contrôleur de vue détaillée et appuyez sur Supprimer.
Il peut être plus facile de sélectionner le contrôleur de vue détaillée dans le plan du document afin de le mettre en surbrillance. Ensuite, vous pouvez probablement trouver le contrôleur de navigation juste à côté.
-
Sélectionnez le contrôleur de vue détaillée dans le plan du document ou le canevas et appuyez sur Supprimer.
Vous devrez créer une nouvelle relation entre le contrôleur Split View et le contrôleur Météo.
-
Sélectionnez le contrôleur Split View sur le storyboard ou le plan du document, faites glisser le contrôle sur le contrôleur Weather, puis sélectionnez Relationship - Detail View Controller dans le menu contextuel qui s'affiche.
Le résultat final de ce qui a été ajouté au storyboard jusqu'à présent devrait ressembler à ceci. Les choses ont été réarrangées un peu pour plus de clarté. Assurez-vous que tout est nommé lorsque vous réorganisez les contrôleurs de vue. Ensuite, vous pouvez zoomer et dézoomer pour voir ce qui rend l'arrangement le plus logique.
Vous allez également devoir apporter des modifications à l'application: DidFinishLaunchingWithOptions:. Ajoutez le code en gras à cette méthode dans AppDelegate. m. Application
- (BOOL): application (UIApplication *) didFinishLaunchingWithOptions: (NSDictionary *) launchOptions {if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPad) {UISplitViewController * splitViewController = (UISplitViewController *) self. fenêtre. rootViewController; if ([splitViewController. ViewControllers [1] isKindOfClass: [classe UINavigationController]]) { UINavigationController * detailNavigationController = [splitViewController. viewControllers lastObject]; splitViewController. delegate = (id) navigationController.topViewController; } else splitViewController. delegate = [splitViewController. viewControllers lastObject]; … le reste de la méthode}
La modification que vous effectuez ici concerne la façon dont vous obtenez le contrôleur de vue détaillée que vous allez affecter en tant que délégué du contrôleur de vue partagée. Le contrôleur Split View gère deux contrôleurs de vue, le dernier dans sa liste de contrôleurs correspondant à ce qui est affiché dans la vue détaillée.
Vous vérifiez le dernier contrôleur de vue pour voir s'il s'agit d'un contrôleur de navigation (qui contient le contrôleur de vue détaillée) en lui envoyant le message isKindOfClass:. Cette méthode renvoie un booléen indiquant s'il s'agit d'un UINavigationController.
if ([splitViewController.viewControllers [1] isKindOfClass: [classe UINavigationController]]) {UINavigationController * detailNavigationController = [splitViewController. viewControllers lastObject]; splitViewController. delegate = (id) detailNavigationController. topViewController;}
S'il s'agit d'un contrôleur de navigation, vous devez trouver son contrôleur de vue (c'est celui qui a adopté le protocole SplitViewControllerDelegate, implémenté les méthodes de protocole et peut devenir le délégué du contrôleur de vue partagée). accéder à la propriété topViewController du contrôleur de navigation. (Il pointe vers le premier et le seul contrôleur de vue sur sa pile.) Ensuite, vous l'affecterez en tant que délégué.
Si c'est un contrôleur de vue, plutôt qu'un contrôleur de navigation (ce qui sera le cas parce que vous venez de faire du contrôleur météo le contrôleur de vue de détail et qu'il n'a pas de contrôleur de navigation), vous affectez juste cette vue contrôleur en tant que délégué.
else splitViewController. delegate = [splitViewController. viewControllers lastObject];
Si vous construisez et exécutez votre projet maintenant, il semble que vous ayez fait un pas en arrière; Tout ce que vous verrez est un écran vide - dans l'orientation Portrait pas moins (à moins que vous ayez gardé le contrôleur Test Drive comme contrôleur de vue de détail initial).
