Поделиться через


Работа с панелью навигации tvOS в Xamarin

Панели навигации можно добавить в верхнюю часть представлений для отображения кнопок заголовка и необязательных кнопок панели навигации. Обычно они используются при переходе пользователя с главной страницы, например табличного представления, коллекции или меню в подвью, в котором отображаются сведения о выбранном элементе.

Пример панели навигации

Помимо заголовка (отображаемого в центре), панели навигации могут содержать одну или несколько кнопок панели навигации (UIBarButtonItem) в левой и правой части панели.

Внимание

Панели навигации по умолчанию полностью прозрачны. Необходимо учесть, что содержимое панели навигации остается читаемым по содержимому под ним. Например, если содержимое в представлении таблицы или коллекции прокручивается под ним.

Самый простой способ работы с панелью навигации в приложении Xamarin.tvOS — добавить их в пользовательский интерфейс приложения с помощью конструктора iOS.

  1. На панели решений дважды щелкните Main.storyboard файл и откройте его для редактирования.

  2. Перетащите панель навигации из панели элементов и удалите ее в представлении в верхней части экрана:

    Панель навигации

  3. Дважды щелкните панель навигации, чтобы выбрать элемент навигации. На вкладке "Мини-приложение " панели свойств можно задать заголовок:

    Установка заголовка

  4. Затем вы можете добавить один или несколько элементов кнопки панели в любой конец панели:

    Элемент кнопки

  5. Наконец, простройте элементы кнопки панели к действиям на вкладке "События" Обозреватель свойств:

    Действие элемента кнопки панели

  6. Сохранение изменений.

Внимание

Хотя можно назначить такие события, как элемент пользовательского интерфейса (например, UIButton) в конструкторе iOS, он никогда не будет вызываться, так как TouchUpInside Apple TV не имеет сенсорного экрана или поддерживает события сенсорного ввода. При создании обработчиков событий для элементов пользовательского интерфейса tvOS всегда следует использовать Primary Action событие.

В следующем коде приведен пример обработчиков событий на трех разных объектах BarButtonItems: ShowFirstHotelи ShowThirdHotelShowSecondHotel. При щелчке каждого элемента фоновый образ HotelImage изменяется. Это редактируется в файле контроллера представления (пример ViewController.cs) :

using System;
using Foundation;
using UIKit;

namespace MySingleView
{
    public partial class ViewController : UIViewController
    {
        #region Constructors
        public ViewController (IntPtr handle) : base (handle)
        {
        }
        #endregion

        #region Override Methods
        public override void ViewDidLoad ()
        {
            base.ViewDidLoad ();
            // Perform any additional setup after loading the view, typically from a nib.
        }

        public override void DidReceiveMemoryWarning ()
        {
            base.DidReceiveMemoryWarning ();
            // Release any cached data, images, etc that aren't in use.
        }
        #endregion

        #region Custom Actions
        partial void ShowFirstHotel (UIBarButtonItem sender) {
            // Change background image
            HotelImage.Image = UIImage.FromFile("Motel01.jpg");
        }

        partial void ShowSecondHotel (UIBarButtonItem sender) {
            // Change background image
            HotelImage.Image = UIImage.FromFile("Motel02.jpg");
        }

        partial void ShowThirdHotel (UIBarButtonItem sender) {
            // Change background image
            HotelImage.Image = UIImage.FromFile("Motel03.jpg");
        }
        #endregion
    }
}

Если свойство true кнопки Enabled и оно не охватывается другим элементом управления или представлением, его можно сделать элементом в фокусе с помощью Siri Remote.

Дополнительные сведения о работе с раскадровками см. в руководстве по началу работы с раскадровки Hello, tvOS.

Итоги

В этой статье описано проектирование и работа с панелью навигации внутри приложения Xamarin.tvOS.