Работа с навигацией watchOS в Xamarin
Самый простой вариант навигации, доступный в часовом режиме, — это простое модальное всплывающее окно, которое отображается поверх текущей сцены.
Для приложений с несколькими сценами доступны две парадигмы навигации:
Модальные интерфейсы
PresentController
Используйте метод, чтобы открыть контроллер интерфейса модально. Контроллер интерфейса должен быть уже определен в интерфейсе.storyboard.
PresentController ("pageController","some context info");
Модически представленные контроллеры используют весь экран (охватывающий предыдущую сцену). По умолчанию для заголовка задано значение "Отмена" и касание его будет отклонить контроллер.
Чтобы программно закрыть модально представленный контроллер, вызовите вызов DismissController
.
DismissController();
Модальные экраны могут быть одной сценой или использовать макет на основе страниц.
Иерархическая навигация
Представляет сцены, такие как стек, который можно перемещать обратно, аналогично тому, как UINavigationController
работает в iOS. Сцены можно отправить в стек навигации и выпустить (программным способом или путем выбора пользователем).
Как и в iOS, проводится пальцем влево к родительскому контроллеру в иерархическом стеке навигации.
Отправка и всплывание в коде
Набор контрольных наборов не требует создания контроллера навигации над арками, например iOS, просто отправьте контроллер с помощью PushController
метода, и стек навигации будет автоматически создан.
PushController("secondPageController","some context info");
Экран часы будет включать кнопку "Назад " в левом верхнем углу, но вы также можете программно удалить сцену из стека навигации с помощью PopController
.
PopController();
Как и в iOS, можно также вернуться в корень стека навигации с помощью PopToRootController
.
PopToRootController();
Использование segues
Segues можно создавать между сценами в раскадровке, чтобы определить иерархическую навигацию. Чтобы получить контекст для целевой сцены, операционная система вызывает GetContextForSegue
инициализацию нового контроллера интерфейса.
public override NSObject GetContextForSegue (string segueIdentifier)
{
if (segueIdentifier == "mySegue") {
return new NSString("some context info");
}
return base.GetContextForSegue (segueIdentifier);
}
Интерфейсы на основе страниц
Интерфейсы на основе страниц проводите пальцем влево направо, аналогично тому, как UIPageViewController
работает в iOS. Точки индикатора отображаются в нижней части экрана, чтобы показать, какая страница отображается в данный момент.
Чтобы сделать интерфейс на основе страниц основного пользовательского интерфейса для приложения наблюдения, используйте ReloadRootControllers
с массивом контроллеров и контекстов интерфейса:
var controllerNames = new [] { "pageController", "pageController", "pageController", "pageController", "pageController" };
var contexts = new [] { "First", "Second", "Third", "Fourth", "Fifth" };
ReloadRootControllers (controllerNames, contexts);
Вы также можете представить контроллер на основе страниц, который не является корневым, используя PresentController
один из других сцен в приложении.
var controllerNames = new [] { "pageController", "pageController", "pageController", "pageController", "pageController" };
var contexts = new [] { "First", "Second", "Third", "Fourth", "Fifth" };
PresentController (controllerNames, contexts);