Vytvoření aplikace Xamarin.iOS pomocí rozhraní Elements API
Tento článek vychází z informací uvedených v článku Úvod do dialogového okna MonoTouch. Představuje návod, který ukazuje, jak používat MonoTouch.Dialog (MT. D) Rozhraní ELEMENTS API pro rychlé zahájení vytváření aplikace pomocí MT.D.
V tomto názorném postupu použijeme MT. Rozhraní API elementů D pro vytvoření stylu předlohy podrobností aplikace, která zobrazuje seznam úkolů. Když uživatel vybere + tlačítko na navigačním panelu, přidá se do tabulky úkolu nový řádek. Výběrem řádku přejdete na obrazovku podrobností, která nám umožní aktualizovat popis úkolu a termín splnění, jak je znázorněno níže:
Nastavení MT. D
MT. D se distribuuje s Xamarin.iOS. Pokud ho chcete použít, klikněte pravým tlačítkem myši na uzel Odkazy projektu Xamarin.iOS v sadě Visual Studio 2017 nebo Visual Studio pro Mac a přidejte odkaz na sestavení MonoTouch.Dialog-1. Potom podle potřeby přidejte using MonoTouch.Dialog
do zdrojového kódu příkazy.
Názorný průvodce rozhraním Elements API
V článku Úvod do MonoTouch Dialog jsme získali solidní pochopení různých částí MT.D. Pojďme použít rozhraní Elements API k jejich vytvoření do aplikace.
Nastavení víceobrazovkové aplikace
Chcete-li spustit proces vytváření obrazovky, MonoTouch.Dialog vytvoří DialogViewController
a pak přidá .RootElement
K vytvoření víceobrazovkové aplikace pomocí MonoTouch.Dialog musíme:
- Vytvořte soubor
UINavigationController.
- Vytvořte soubor
DialogViewController.
DialogViewController
Přidání jako kořeneUINavigationController.
- Přidání do
RootElement
DialogViewController.
- Přidat
Sections
aElements
doRootElement.
Použití uiNavigationController
Abychom vytvořili aplikaci ve stylu navigace, musíme vytvořit UINavigationController
a pak ji přidat jako RootViewController
metodu FinishedLaunching
AppDelegate
. Abychom mohli UINavigationController
pracovat s MonoTouch.Dialog, přidáme ho k následujícímu DialogViewController
obrázku 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;
}
Výše uvedený kód vytvoří instanci objektu a RootElement
předá ho do objektu DialogViewController
. Vždy DialogViewController
má RootElement
nahoře v hierarchii. V tomto příkladu RootElement
se vytvoří řetězec "Seznam úkolů", který slouží jako název v navigačním panelu navigačního kontroleru. V tomto okamžiku by spuštění aplikace zobrazilo následující obrazovku:
Pojďme se podívat, jak používat hierarchickou strukturu Sections
MonoTouch.Dialog a Elements
přidat další obrazovky.
Vytváření obrazovek dialogových oken
A DialogViewController
je UITableViewController
podtřída, kterou MonoTouch.Dialog používá k přidání obrazovek. MonoTouch.Dialog vytváří obrazovky přidáním obrazovek RootElement
do objektu DialogViewController
, jak jsme viděli výše. RootElement
Můžou mít Section
instance, které představují oddíly tabulky.
Oddíly jsou tvořeny prvky, dalšími oddíly nebo dokonce jinými RootElements
. Když vnoříte RootElements
, MonoTouch.Dialog automaticky vytvoří aplikaci ve stylu navigace, jak uvidíme dále.
Použití DialogViewController
Podtřída DialogViewController
, která je podtřídou UITableViewController
UITableView
, má své zobrazení. V tomto příkladu chceme přidat položky do tabulky při každém klepnutí na + tlačítko. Vzhledem k tomu, že byla DialogViewController
přidána do objektu UINavigationController
, můžeme k přidání + tlačítka použít NavigationItem
RightBarButton
vlastnost, jak je znázorněno níže:
_addButton = new UIBarButtonItem (UIBarButtonSystemItem.Add);
_rootVC.NavigationItem.RightBarButtonItem = _addButton;
Když jsme vytvořili RootElement
dříve, předali jsme ji jednu Section
instanci, abychom mohli přidat prvky, protože uživatel + klepne na tlačítko. K tomuto účelu můžeme použít následující kód v obslužné rutině události tlačítka:
_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);
};
Tento kód vytvoří nový Task
objekt při každém klepnutí na tlačítko. Následující příklad ukazuje jednoduchou implementaci Task
třídy:
public class Task
{
public Task ()
{
}
public string Name { get; set; }
public string Description { get; set; }
public DateTime DueDate { get; set; }
}
Vlastnost úkolu Name
se používá k vytvoření RootElement
popis 'spolu s proměnnou čítače s názvemn
, která se zvýší pro každý nový úkol. MonoTouch.Dialog změní prvky na řádky, které jsou přidány při TableView
každém taskElement
přidání.
Prezentace a správa dialogových obrazovek
Použili jsme tak RootElement
, aby MonoTouch.Dialog automaticky vytvořil novou obrazovku pro podrobnosti každého úkolu a při výběru řádku na ni přecháděl.
Samotná obrazovka podrobností úkolu se skládá ze dvou částí; každý z těchto oddílů obsahuje jeden prvek. První prvek je vytvořen z objektu EntryElement
, který poskytuje upravitelný řádek pro vlastnost úkolu Description
. Při výběru prvku se zobrazí klávesnice pro úpravy textu, jak je znázorněno níže:
Druhá část obsahuje objekt DateElement
, který nám umožňuje spravovat vlastnost úkolu DueDate
. Výběrem data se automaticky načte výběr data, jak je znázorněno níže:
V obou EntryElement
případech DateElement
(nebo u jakéhokoli prvku pro zadávání dat v MonoTouch.Dialog) se všechny změny hodnot zachovají automaticky. Můžeme to předvést úpravou data a následným přechodem mezi kořenovou obrazovkou a různými podrobnostmi úkolu, kde se hodnoty na obrazovkách podrobností zachovají.
Shrnutí
Tento článek představil návod, který ukázal, jak používat rozhraní MonoTouch.Dialog Elements API. Probral základní kroky k vytvoření víceobrazovkové aplikace s MT. D, včetně toho, jak používat a DialogViewController
jak přidat prvky a oddíly k vytváření obrazovek. Kromě toho ukázala, jak používat MT. D ve spojení s .UINavigationController