Share via


Utilisation de watchOS Navigation dans Xamarin

L’option de navigation la plus simple disponible sur la montre est une fenêtre contextuelle modale simple qui apparaît en haut de la scène actuelle.

Pour les applications de surveillance à plusieurs scènes, il existe deux paradigmes de navigation disponibles :

Utilisez la PresentController méthode pour ouvrir un contrôleur d’interface modalement. Le contrôleur d’interface doit déjà être défini dans interface.storyboard.

PresentController ("pageController","some context info");

Les contrôleurs présentés modalment utilisent l’écran entier (couvrant la scène précédente). Par défaut, le titre est défini sur Annuler et en appuyant dessus, le contrôleur est ignoré.

Pour fermer par programmation le contrôleur présenté modalment, appelez DismissController.

DismissController();

Les écrans modals peuvent être une scène unique ou utiliser une mise en page.

Navigation hiérarchique

Présente des scènes telles qu’une pile qui peut être renvoyée, similaire à la façon dont UINavigationController fonctionne sur iOS. Les scènes peuvent être poussées sur la pile de navigation et désactivées (par programmation ou par sélection utilisateur).

Les scènes peuvent être poussées sur la pile de navigationLes scènes peuvent être supprimées de la pile de navigation

Comme avec iOS, un balayage de bord gauche navigue vers le contrôleur parent dans une pile de navigation hiérarchique.

Envoi (push) et popping dans le code

Watch Kit ne nécessite pas de « contrôleur de navigation » de sur-arc pour être créé comme iOS : il suffit d’envoyer (push) un contrôleur à l’aide de la PushController méthode et une pile de navigation sera automatiquement créée.

PushController("secondPageController","some context info");

L’écran de la montre inclut un bouton Précédent en haut à gauche, mais vous pouvez également supprimer par programme une scène de la pile de navigation à l’aide PopControllerde .

PopController();

Comme avec iOS, il est également possible de revenir à la racine de la pile de navigation à l’aide PopToRootControllerde .

PopToRootController();

Utilisation de Segues

Segues peut être créé entre des scènes dans le storyboard pour définir la navigation hiérarchique. Pour obtenir le contexte de la scène cible, le système d’exploitation appelle GetContextForSegue pour initialiser le nouveau contrôleur d’interface.

public override NSObject GetContextForSegue (string segueIdentifier)
{
  if (segueIdentifier == "mySegue") {
    return new NSString("some context info");
  }
  return base.GetContextForSegue (segueIdentifier);
}

Interfaces basées sur des pages

Les interfaces basées sur des pages effectuent un mouvement de balayage vers la gauche à droite, de la même façon UIPageViewController que sur iOS. Les points d’indicateur s’affichent le long du bas de l’écran pour afficher la page actuellement affichée.

Exemple de première pageExemple de deuxième pageExemple de cinquième page

Pour créer une interface basée sur des pages l’interface utilisateur principale de votre application espion, utilisez ReloadRootControllers un tableau de contrôleurs d’interface et de contextes :

var controllerNames = new [] { "pageController", "pageController", "pageController", "pageController", "pageController" };
var contexts = new [] { "First", "Second", "Third", "Fourth", "Fifth" };
ReloadRootControllers (controllerNames, contexts);

Vous pouvez également présenter un contrôleur basé sur une page qui n’est pas la racine à l’aide PresentController de l’une des autres scènes d’une application.

var controllerNames = new [] { "pageController", "pageController", "pageController", "pageController", "pageController" };
var contexts = new [] { "First", "Second", "Third", "Fourth", "Fifth" };
PresentController (controllerNames, contexts);