Создание приложения Xamarin.iOS с помощью API Элементов
Эта статья основана на сведениях, представленных в статье "Введение в MonoTouch Dialog". В нем представлено пошаговое руководство по использованию MonoTouch.Dialog (MT). D) API элементов, чтобы быстро приступить к созданию приложения с помощью MT.D.
В этом пошаговом руководстве мы будем использовать MT. API D Elements для создания основного стиля приложения, отображающего список задач. Когда пользователь выбирает + кнопку на панели навигации, новая строка будет добавлена в таблицу для задачи. При выборе строки перейдите на экран сведений, который позволяет обновить описание задачи и дату выполнения, как показано ниже:
Настройка MT. D
MT. D распространяется с помощью Xamarin.iOS. Чтобы использовать его, щелкните правой кнопкой мыши узел "Ссылки" проекта Xamarin.iOS в Visual Studio 2017 или Visual Studio для Mac и добавьте ссылку на сборку MonoTouch.Dialog-1. Затем добавьте using MonoTouch.Dialog
инструкции в исходный код по мере необходимости.
Пошаговое руководство по API элементов
В статье "Введение в MonoTouch Dialog" мы получили четкое представление о различных частях MT.D. Давайте используем API элементов, чтобы объединить их в приложение.
Настройка мультиэкранного приложения
Чтобы запустить процесс создания экрана, MonoTouch.Dialog создает объект DialogViewController
, а затем добавляет объект RootElement
.
Чтобы создать многоэкранное приложение с помощью MonoTouch.Dialog, необходимо:
- Создание класса
UINavigationController.
- Создание класса
DialogViewController.
DialogViewController
Добавление в качестве корневого элементаUINavigationController.
RootElement
Добавление вDialogViewController.
- Добавление
Sections
иElements
добавление вRootElement.
Использование UINavigationController
Чтобы создать приложение в стиле навигации, необходимо создать приложение UINavigationController
, а затем добавить его как RootViewController
FinishedLaunching
в методе AppDelegate
. Чтобы сделать работу с MonoTouch.Dialog, мы добавим UINavigationController
в DialogViewController
нее, UINavigationController
как показано ниже:
public override bool FinishedLaunching (UIApplication app, NSDictionary options)
{
_window = new UIWindow (UIScreen.MainScreen.Bounds);
_rootElement = new RootElement ("To Do List"){new Section ()};
// code to create screens with MT.D will go here …
_rootVC = new DialogViewController (_rootElement);
_nav = new UINavigationController (_rootVC);
_window.RootViewController = _nav;
_window.MakeKeyAndVisible ();
return true;
}
Приведенный выше код создает экземпляр объекта RootElement
и передает его в DialogViewController
. Всегда DialogViewController
имеется RootElement
в верхней части своей иерархии. В этом примере создается строка "Список дел список", RootElement
которая служит заголовком в панели навигации контроллера навигации. На этом этапе запуск приложения будет отображаться на следующем экране:
Давайте посмотрим, как использовать иерархическую структуру Sections
MonoTouch.Dialog и Elements
добавить дополнительные экраны.
Создание экранов диалогового окна
A DialogViewController
— это UITableViewController
подкласс, который MonoTouch.Dialog использует для добавления экранов. MonoTouch.Dialog создает экраны путем добавления в нее RootElement
DialogViewController
, как мы видели выше. У RootElement
них могут быть Section
экземпляры, представляющие разделы таблицы.
Разделы состоят из элементов, других разделов или даже других RootElements
. При вложении RootElements
MonoTouch.Dialog автоматически создает приложение в стиле навигации, как показано далее.
Использование DialogViewController
UITableViewController
Подкласс DialogViewController
имеет UITableView
свое представление. В этом примере мы хотим добавлять элементы в таблицу при + каждом нажатии кнопки. Так как свойство DialogViewController
добавлено UINavigationController
в объект, можно использовать NavigationItem
свойство для RightBarButton
добавления + кнопки, как показано ниже:
_addButton = new UIBarButtonItem (UIBarButtonSystemItem.Add);
_rootVC.NavigationItem.RightBarButtonItem = _addButton;
Когда мы создали RootElement
ранее, мы передали его одному Section
экземпляру, чтобы можно было добавить элементы по + мере нажатия кнопки пользователем. Для этого в обработчике событий для кнопки можно использовать следующий код:
_addButton.Clicked += (sender, e) => {
++n;
var task = new Task{Name = "task " + n, DueDate = DateTime.Now};
var taskElement = new RootElement (task.Name) {
new Section () {
new EntryElement (task.Name, "Enter task description", task.Description)
},
new Section () {
new DateElement ("Due Date", task.DueDate)
}
};
_rootElement [0].Add (taskElement);
};
Этот код создает новый Task
объект при каждом нажатии кнопки. Ниже показана простая реализация Task
класса:
public class Task
{
public Task ()
{
}
public string Name { get; set; }
public string Description { get; set; }
public DateTime DueDate { get; set; }
}
Свойство задачи Name
используется для создания RootElement
подпись вместе с переменной счетчика, которая n
увеличивается для каждой новой задачи. MonoTouch.Dialog превращает элементы в строки, которые добавляются в TableView
каждый из них taskElement
.
Отображение экранов диалоговых окон и управление ими
Мы использовали так RootElement
, чтобы MonoTouch.Dialog автоматически создавал новый экран для сведений о каждой задаче и переход к нему при выборе строки.
Экран сведений о задаче состоит из двух разделов; Каждый из этих разделов содержит один элемент. Первый элемент создается из объекта EntryElement
для предоставления редактируемой строки для свойства задачи Description
. При выборе элемента отображается клавиатура для редактирования текста, как показано ниже:
Второй раздел содержит объект DateElement
, позволяющий управлять свойством задачи DueDate
. Выбор даты автоматически загружает средство выбора дат, как показано ниже.
В обоих EntryElement
DateElement
случаях (или для любого элемента записи данных в MonoTouch.Dialog) все изменения значений сохраняются автоматически. Мы можем продемонстрировать это, изменив дату, а затем перейдя между корневым экраном и различными сведениями о задаче, где сохраняются значения на экранах сведений.
Итоги
В этой статье представлено пошаговое руководство по использованию API MonoTouch.Dialog Elements. В ней рассматриваются основные шаги по созданию многоэкранного приложения с помощью MT. D, включая использование DialogViewController
и добавление элементов и разделов для создания экранов. Кроме того, он показал, как использовать MT. D в сочетании с .UINavigationController