Работа с панелью навигации tvOS в Xamarin
Панели навигации можно добавить в верхнюю часть представлений для отображения кнопок заголовка и необязательных кнопок панели навигации. Обычно они используются при переходе пользователя с главной страницы, например табличного представления, коллекции или меню в подвью, в котором отображаются сведения о выбранном элементе.
Помимо заголовка (отображаемого в центре), панели навигации могут содержать одну или несколько кнопок панели навигации (UIBarButtonItem
) в левой и правой части панели.
Внимание
Панели навигации по умолчанию полностью прозрачны. Необходимо учесть, что содержимое панели навигации остается читаемым по содержимому под ним. Например, если содержимое в представлении таблицы или коллекции прокручивается под ним.
Панели навигации и раскадровки
Самый простой способ работы с панелью навигации в приложении Xamarin.tvOS — добавить их в пользовательский интерфейс приложения с помощью конструктора iOS.
На панели решений дважды щелкните
Main.storyboard
файл и откройте его для редактирования.Перетащите панель навигации из панели элементов и удалите ее в представлении в верхней части экрана:
Дважды щелкните панель навигации, чтобы выбрать элемент навигации. На вкладке "Мини-приложение " панели свойств можно задать заголовок:
Затем вы можете добавить один или несколько элементов кнопки панели в любой конец панели:
Наконец, простройте элементы кнопки панели к действиям на вкладке "События" Обозреватель свойств:
Сохранение изменений.
Внимание
Хотя можно назначить такие события, как элемент пользовательского интерфейса (например, UIButton) в конструкторе iOS, он никогда не будет вызываться, так как TouchUpInside
Apple TV не имеет сенсорного экрана или поддерживает события сенсорного ввода. При создании обработчиков событий для элементов пользовательского интерфейса tvOS всегда следует использовать Primary Action
событие.
В следующем коде приведен пример обработчиков событий на трех разных объектах BarButtonItems: ShowFirstHotel
и ShowThirdHotel
ShowSecondHotel
. При щелчке каждого элемента фоновый образ 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.