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 :
Interfaces modales
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).
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 PopController
de .
PopController();
Comme avec iOS, il est également possible de revenir à la racine de la pile de navigation à l’aide PopToRootController
de .
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.
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);