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


Создание приложения 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, необходимо:

  1. Создание класса UINavigationController.
  2. Создание класса DialogViewController.
  3. DialogViewController Добавление в качестве корневого элементаUINavigationController.
  4. RootElement Добавление вDialogViewController.
  5. Добавление Sections и Elements добавление в RootElement.

Использование UINavigationController

Чтобы создать приложение в стиле навигации, необходимо создать приложение UINavigationController, а затем добавить его как RootViewControllerFinishedLaunching в методе 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 создает экраны путем добавления в нее RootElementDialogViewController, как мы видели выше. У RootElement них могут быть Section экземпляры, представляющие разделы таблицы. Разделы состоят из элементов, других разделов или даже других RootElements. При вложении RootElementsMonoTouch.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 . Выбор даты автоматически загружает средство выбора дат, как показано ниже.

Выбор даты автоматически загружает средство выбора дат в качестве

В обоих EntryElementDateElement случаях (или для любого элемента записи данных в MonoTouch.Dialog) все изменения значений сохраняются автоматически. Мы можем продемонстрировать это, изменив дату, а затем перейдя между корневым экраном и различными сведениями о задаче, где сохраняются значения на экранах сведений.

Итоги

В этой статье представлено пошаговое руководство по использованию API MonoTouch.Dialog Elements. В ней рассматриваются основные шаги по созданию многоэкранного приложения с помощью MT. D, включая использование DialogViewController и добавление элементов и разделов для создания экранов. Кроме того, он показал, как использовать MT. D в сочетании с .UINavigationController