Úvod do MonoTouch.Dialog pro Xamarin.iOS
MonoTouch.Dialog, označovaný jako MT. Stručně řečeno, je rychlá sada nástrojů pro vývoj uživatelského rozhraní, která vývojářům umožňuje vytvářet obrazovky aplikací a navigaci s využitím informací, nikoli tedium vytváření kontrolerů zobrazení, tabulek atd. Poskytuje tak významné zjednodušení vývoje uživatelského rozhraní a snížení kódu. Představte si například následující snímek obrazovky:
K definování celé obrazovky se použil následující kód:
public enum Category
{
Travel,
Lodging,
Books
}
public class Expense
{
[Section("Expense Entry")]
[Entry("Enter expense name")]
public string Name;
[Section("Expense Details")]
[Caption("Description")]
[Entry]
public string Details;
[Checkbox]
public bool IsApproved = true;
[Caption("Category")]
public Category ExpenseCategory;
}
Při práci s tabulkami v iOSu je často tuna opakujícího se kódu. Například pokaždé, když je tabulka potřebná, je potřeba zdroj dat k naplnění této tabulky. V aplikaci se dvěma obrazovkami založenými na tabulce, které jsou připojené přes navigační ovladač, sdílí každá obrazovka hodně stejného kódu.
MT. D to zjednodušuje zapouzdřením veškerého kódu do obecného rozhraní API pro vytvoření tabulky. Pak poskytuje abstrakci nad tímto rozhraním API, která umožňuje syntaxi deklarativní vazby objektů, která usnadňuje. V MT jsou k dispozici dvě rozhraní API. D:
- Rozhraní API elementů nízké úrovně – Rozhraní Elements API je založeno na vytvoření hierarchálního stromu prvků, které představují obrazovky a jejich komponenty. Rozhraní Elements API poskytuje vývojářům největší flexibilitu a kontrolu při vytváření uživatelských rozhraní. Kromě toho má rozhraní Elements API pokročilou podporu deklarativní definice prostřednictvím formátu JSON, což umožňuje neuvěřitelně rychlou deklaraci i dynamické generování uživatelského rozhraní ze serveru.
- Rozhraní API reflexe vysoké úrovně – označuje se také jako rozhraní API vazby, ve kterém třídy jsou opatřeny poznámkami s nápovědou uživatelského rozhraní a pak MT. D automaticky vytváří obrazovky založené na objektech a poskytuje vazbu mezi zobrazenými (a volitelně upravovanými) na obrazovce a podkladovým objektem. Výše uvedený příklad znázorňuje použití rozhraní Reflection API. Toto rozhraní API neposkytuje jemně odstupňované řízení, které rozhraní API elementů dělá, ale snižuje složitost ještě více tím, že automaticky vytváří hierarchii prvků na základě atributů třídy.
MT. D se dodává s velkou sadou integrovaných prvků uživatelského rozhraní pro vytváření obrazovky, ale také rozpozná potřebu přizpůsobených prvků a pokročilých rozložení obrazovky. Rozšiřitelnost je tedy prvotřídní funkce pečená do rozhraní API. Vývojáři můžou stávající prvky rozšířit nebo vytvořit nové a bezproblémově integrovat.
Kromě toho MT. D obsahuje řadu běžných funkcí uživatelského prostředí pro iOS, jako je podpora "aktualizace", asynchronní načítání obrázků a podpora vyhledávání.
Tento článek se zabývá komplexním pohledem na práci s MT. D, včetně:
- MT. D Components – To se zaměří na pochopení tříd, které tvoří MT. D, aby bylo možné rychle zrychlit.
- Reference k prvkům – komplexní seznam předdefinovaných prvků MT.D.
- Rozšířené využití – To se zabývá pokročilými funkcemi, jako jsou aktualizace, vyhledávání, načítání obrázků na pozadí, použití LINQ k vytváření hierarchií prvků a vytváření vlastních prvků, buněk a kontrolerů pro použití s MT.D.
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.
Pochopení částí MT. D
I když používáte rozhraní REFLECTION API, MT. D vytvoří hierarchii elementů pod kapotou, stejně jako kdyby byla vytvořena přímo prostřednictvím rozhraní Elements API. Podpora JSON uvedená v předchozí části také vytvoří elementy. Z tohoto důvodu je důležité mít základní znalosti o základních částech MT.D.
MT. D sestavuje obrazovky s následujícími čtyřmi částmi:
- DialogViewController
- RootElement
- Sekce
- Element
DialogViewController
DialogViewController nebo DVC pro krátké, dědí z UITableViewController
a proto představuje obrazovku s tabulkou. DvCs lze nasdílit na navigační ovladač stejně jako běžný UITableViewController.
RootElement
RootElement je kontejner nejvyšší úrovně pro položky, které se přecházejí do DVC. Obsahuje oddíly, které pak mohou obsahovat elementy. RootElements nejsou vykresleny; místo toho jsou jednoduše kontejnery pro to, co se skutečně vykresluje. RootElement je přiřazen k DVC a potom DVC vykresluje své podřízené položky.
Sekce
Oddíl je skupina buněk v tabulce. Stejně jako u normálního oddílu tabulky může mít volitelně záhlaví a zápatí, které může být text nebo dokonce vlastní zobrazení, jako na následujícím snímku obrazovky:
Element (Prvek)
Element představuje skutečnou buňku v tabulce. MT. D je dodáván s širokou škálou prvků, které představují různé datové typy nebo různé vstupy. Například následující snímky obrazovky znázorňují několik dostupných prvků:
Další informace o oddílech a kořenech
Pojďme se teď podrobněji zabývat rootElements a oddíly.
RootElements
Ke spuštění procesu MonoTouch.Dialog je potřeba alespoň jeden RootElement.
Pokud je RootElement inicializován s hodnotou oddílu nebo elementu, tato hodnota se použije k vyhledání podřízeného elementu, který poskytne souhrn konfigurace, který se zobrazí na pravé straně zobrazení. Na následujícím snímku obrazovky je například tabulka vlevo s buňkou, která obsahuje název obrazovky s podrobnostmi vpravo, "Dezerty" spolu s hodnotou vybrané pouště.
Kořenové prvky lze také použít uvnitř oddílů k aktivaci načtení nové vnořené konfigurační stránky, jak je znázorněno výše. Při použití v tomto režimu se titulky použijí při vykreslení uvnitř oddílu a slouží také jako název podstránky. Příklad:
var root = new RootElement ("Meals") {
new Section ("Dinner") {
new RootElement ("Dessert", new RadioGroup ("dessert", 2)) {
new Section () {
new RadioElement ("Ice Cream", "dessert"),
new RadioElement ("Milkshake", "dessert"),
new RadioElement ("Chocolate Cake", "dessert")
}
}
}
};
Když uživatel v předchozím příkladu klepne na "Dezert", MonoTouch.Dialog vytvoří novou stránku a přejde na ni s kořenem "Dezert" a má skupinu rádia se třemi hodnotami.
V této konkrétní ukázce skupina rádia vybere "Čokoládový dort" v části "Dezerty", protože jsme předali hodnotu "2" RadioGroup. To znamená, že vyberete třetí položku v seznamu (nulový index).
Volání metody Add nebo použití syntaxe inicializátoru C# 4 přidává oddíly. Metody Insert jsou k dispozici pro vložení oddílů s animací.
Pokud vytvoříte RootElement s instancí skupiny (místo RadioGroup), souhrnná hodnota RootElement při zobrazení v oddílu bude kumulativní počet všech logickýchelements a CheckboxElements, které mají stejný klíč jako hodnota Group.Key.
Oddíly
Oddíly se používají k seskupení prvků na obrazovce a jsou to jediné platné přímé podřízené položky RootElement. Oddíly můžou obsahovat libovolný ze standardních prvků, včetně nových RootElements.
RootElements vložené do oddílu slouží k přechodu na novou hlubší úroveň.
Oddíly můžou mít záhlaví a zápatí buď jako řetězce, nebo jako uiViews. Obvykle budete používat pouze řetězce, ale k vytvoření vlastních uživatelských rozhraní můžete použít libovolné UIView jako záhlaví nebo zápatí. Řetězec můžete použít k jejich vytvoření takto:
var section = new Section ("Header", "Footer");
Pokud chcete použít zobrazení, stačí předat zobrazení konstruktoru:
var header = new UIImageView (Image.FromFile ("sample.png"));
var section = new Section (header);
Oznámení
Zpracování NSAction
MT. D zobrazí NSAction
jako delegáta pro zpracování zpětných volání.
Řekněme například, že chcete zpracovat dotykovou událost pro buňku tabulky vytvořenou mt.D. Při vytváření elementu pomocí MT. D, jednoduše zadejte funkci zpětného volání, jak je znázorněno níže:
new Section () {
new StringElement ("Demo Callback", delegate { Console.WriteLine ("Handled"); })
}
Načítání hodnoty elementu
V kombinaci s Element.Value
vlastností může zpětné volání načíst hodnotu nastavenou v jiných elementech. Představte si například následující kód:
var element = new EntryElement (task.Name, "Enter task description", task.Description);
var taskElement = new RootElement (task.Name) {
new Section () { element },
new Section () { new DateElement ("Due Date", task.DueDate) },
new Section ("Demo Retrieving Element Value") {
new StringElement ("Output Task Description", delegate { Console.WriteLine (element.Value); })
}
};
Tento kód vytvoří uživatelské rozhraní, jak je znázorněno níže. Úplný návod k tomuto příkladu najdete v kurzu Průvodce rozhraním Elements API.
Když uživatel stiskne dolní buňku tabulky, spustí se kód anonymní funkce a zapíše hodnotu z element
instance do oblasti Výstup aplikace v Visual Studio pro Mac.
Předdefinované prvky
MT. D obsahuje řadu předdefinovaných položek buněk tabulky, které se označují jako Elementy. Tyto prvky se používají k zobrazení různých typů v buňkách tabulky, jako jsou řetězce, plovoucí hodnoty, kalendářní data a dokonce obrázky, a pojmenovávají se jen pár. Každý prvek se postará o správné zobrazení datového typu. Například logický prvek zobrazí přepínač, který přepne jeho hodnotu. Podobně plovoucí prvek zobrazí posuvník pro změnu hodnoty float.
Existují ještě složitější prvky, které podporují bohatší datové typy, jako jsou obrázky a html. Například element HTML, který otevře UIWebView pro načtení webové stránky při výběru, zobrazí titulek v buňce tabulky.
Práce s hodnotami elementů
Prvky, které se používají k zachycení vstupu uživatele, zpřístupňují veřejnou Value
vlastnost, která obsahuje aktuální hodnotu prvku kdykoli. Aktualizuje se automaticky, protože uživatel aplikaci používá.
Toto je chování pro všechny prvky, které jsou součástí MonoTouch.Dialog, ale není nutné pro uživatelem vytvořené prvky.
String Element
A StringElement
zobrazuje titulek na levé straně buňky tabulky a řetězcovou hodnotu na pravé straně buňky.
Pokud chcete použít StringElement
tlačítko jako tlačítko, zadejte delegáta.
new StringElement ("Click me", () => {
new UIAlertView("Tapped", "String Element Tapped", null, "ok", null).Show();
});
Styled String Element
A StyledStringElement
umožňuje zobrazení řetězců pomocí předdefinovaných stylů buněk tabulky nebo vlastního formátování.
Třída StyledStringElement
je odvozena od StringElement
, ale umožňuje vývojářům přizpůsobit několik vlastností, jako je Písmo, barva textu, barva buňky pozadí, režim přerušení čáry, počet řádků, které se mají zobrazit, a zda má být zobrazeno příslušenství.
Multiline Element
Entry Element
Jak EntryElement
už název napovídá, slouží k získání uživatelského vstupu. Podporuje buď běžné řetězce, nebo hesla, kde jsou znaky skryté.
Inicializuje se se třemi hodnotami:
- Titulek položky, která se uživateli zobrazí.
- Zástupný text (jedná se o šedě zobrazený text, který uživateli poskytuje nápovědu).
- Hodnota textu.
Zástupný symbol a hodnota mohou být null. Titulek je však povinný.
V libovolném okamžiku může přístup k vlastnosti Value načíst hodnotu EntryElement
.
KeyboardType
Vlastnost lze navíc nastavit při vytváření na styl typu klávesnice požadovaný pro zadávání dat. Můžete ho použít ke konfiguraci klávesnice pomocí hodnot UIKeyboardType
uvedených níže:
- Číslo
- telefonní
- URL
Boolean Element
Prvek zaškrtávacího políčka
Radio Element
A RadioElement
vyžaduje RadioGroup
, aby byla zadána v sadě RootElement
.
mtRoot = new RootElement ("Demos", new RadioGroup("MyGroup", 0));
RootElements
jsou používány také ke koordinaci radioaktivit. Členové RadioElement
můžou zahrnovat více oddílů (například pro implementaci něco podobného selektoru vyzváněcího tónu a oddělit vlastní vyzváněcí tóny od systémových vyzváněcích tónů). Souhrnné zobrazení zobrazí přepínač, který je aktuálně vybrán. Pokud to chcete použít, vytvořte pomocí RootElement
konstruktoru skupiny, například takto:
var root = new RootElement ("Meals", new RadioGroup ("myGroup", 0));
Název skupiny RadioGroup
se používá k zobrazení vybrané hodnoty na stránce obsahující (pokud existuje) a hodnota, která je v tomto případě nula, je index první vybrané položky.
Odznáček – element
Float Element
Activity Element
Date Element
Když je vybrána buňka odpovídající dateElement, zobrazí se výběr data, jak je znázorněno níže:
Time Element
Když je vybrána buňka odpovídající timeElement, zobrazí se výběr času, jak je znázorněno níže:
DateTime Element
Když je vybrána buňka odpovídající dateTimeElement, zobrazí se výběr data a času, jak je znázorněno níže:
HTML Element
Zobrazí HTMLElement
hodnotu jeho Caption
vlastnosti v buňce tabulky. Whe selected, the Url
assigned to the element is loaded in a UIWebView
control as shown below:
Message Element
Load More Element
Tento prvek slouží k tomu, aby uživatelé mohli načíst další položky v seznamu. Můžete přizpůsobit normální a načítací titulky a také barvu písma a textu.
Indikátor UIActivity
začne animovat a titulek načítání se zobrazí, když uživatel klepne na buňku a pak se NSAction
předá do konstruktoru. Po dokončení UIActivity
kódu NSAction
se indikátor zastaví animací a znovu se zobrazí normální titulek.
UIView Element
Kromě toho lze pomocí UIView
nástroje UIViewElement
.
Element nakreslený vlastníkem
Tento prvek musí být podtříděn jako abstraktní třída. Měli byste přepsat metodu Height(RectangleF bounds)
, ve které byste měli vrátit výšku prvku, stejně jako Draw(RectangleF bounds, CGContext context, UIView view)
v tom, ve kterém byste měli provést všechny přizpůsobené výkresy v rámci daných hranic pomocí kontextu a zobrazit parametry. Tento prvek provádí těžké přetěžování podtřídy UIView
a umístí ho do buňky, která se má vrátit, takže stačí implementovat pouze dvě jednoduchá přepsání. V ukázkové aplikaci v DemoOwnerDrawnElement.cs
souboru můžete vidět lepší ukázkovou implementaci.
Tady je velmi jednoduchý příklad implementace třídy:
public class SampleOwnerDrawnElement : OwnerDrawnElement
{
public SampleOwnerDrawnElement (string text) : base(UITableViewCellStyle.Default, "sampleOwnerDrawnElement")
{
this.Text = text;
}
public string Text { get; set; }
public override void Draw (RectangleF bounds, CGContext context, UIView view)
{
UIColor.White.SetFill();
context.FillRect(bounds);
UIColor.Black.SetColor();
view.DrawString(this.Text, new RectangleF(10, 15, bounds.Width - 20, bounds.Height - 30), UIFont.BoldSystemFontOfSize(14.0f), UILineBreakMode.TailTruncation);
}
public override float Height (RectangleF bounds)
{
return 44.0f;
}
}
JSON Element
Jedná se JsonElement
o podtřídu RootElement
, která rozšiřuje RootElement
schopnost načíst obsah vnořeného podřízeného objektu z místní nebo vzdálené adresy URL.
Jedná se JsonElement
o instanci RootElement
, kterou lze vytvořit ve dvou formách. Jedna verze vytvoří RootElement
obsah na vyžádání. Ty se vytvářejí pomocí JsonElement
konstruktorů, které na konci přebírají další argument, adresu URL pro načtení obsahu z:
var je = new JsonElement ("Dynamic Data", "https://tirania.org/tmp/demo.json");
Druhý formulář vytvoří data z místního souboru nebo z existujícího System.Json.JsonObject
souboru, který jste už parsovali:
var je = JsonElement.FromFile ("json.sample");
using (var reader = File.OpenRead ("json.sample"))
return JsonElement.FromJson (JsonObject.Load (reader) as JsonObject, arg);
Další informace o použití JSON s MT. D, prohlédnu si kurz s návodem k elementu JSON.
Další funkce
Podpora obnovení k aktualizaci
Pull-to- Refresh je vizuální efekt původně nalezený v aplikaci Tweetie2 , který se stal oblíbeným efektem mezi mnoha aplikacemi.
Pokud chcete do dialogových oken přidat automatickou podporu aktualizace pro vyžádání změn, stačí udělat dvě věci: připojit obslužnou rutinu události, která se má upozornit, když uživatel načte data a oznámí DialogViewController
, kdy se data načetla, aby se vrátila do výchozího stavu.
Připojení oznámení je jednoduché; stačí se připojit k RefreshRequested
události na následujícím DialogViewController
:
dvc.RefreshRequested += OnUserRequestedRefresh;
Pak byste ve své metodě OnUserRequestedRefresh
zařadí do fronty načítání dat, požadovali některá data z sítě nebo zařadíte vlákno pro výpočet dat. Po načtení dat musíte upozornit DialogViewController
, že se nová data nachází a chcete-li zobrazení obnovit do výchozího stavu, provedete to voláním ReloadComplete
:
dvc.ReloadComplete ();
Podpora vyhledávání
Pokud chcete podporovat vyhledávání, nastavte EnableSearch
vlastnost na svém DialogViewController
. Vlastnost můžete také nastavit SearchPlaceholder
jako text vodoznaku na panelu hledání.
Hledání změní obsah zobrazení jako typy uživatelů. Vyhledá viditelná pole a zobrazí je uživateli. Zveřejňuje DialogViewController
tři metody pro programové zahájení, ukončení nebo aktivaci nové operace filtru u výsledků. Tyto metody jsou uvedeny níže:
StartSearch
FinishSearch
PerformFilter
Systém je rozšiřitelný, takže pokud chcete, můžete toto chování změnit.
Načítání obrázku na pozadí
MonoTouch.Dialog obsahuje zavaděč obrázků aplikace TweetStation . Tento zavaděč obrázků lze použít k načtení obrázků na pozadí, podporuje ukládání do mezipaměti a může upozornit váš kód při načtení obrázku.
Omezí se také počet odchozích síťových připojení.
Zavaděč ImageLoader
obrázku je implementovaný ve třídě, vše, co musíte udělat, je volání DefaultRequestImage
metody, budete muset zadat identifikátor URI pro image, kterou chcete načíst, a také instanci IImageUpdated
rozhraní, které bude vyvoláno při načtení image.
Například následující kód načte obrázek z adresy URL do BadgeElement
:
string uriString = "http://some-server.com/some image url";
var rootElement = new RootElement("Image Loader") {
new Section() {
new BadgeElement( ImageLoader.DefaultRequestImage( new Uri(uriString), this), "Xamarin")
}
};
Třída ImageLoader zveřejňuje metodu Purge, kterou můžete volat, když chcete uvolnit všechny image, které jsou aktuálně uloženy v mezipaměti v paměti. Aktuální kód má mezipaměť pro 50 obrázků. Pokud chcete použít jinou velikost mezipaměti (například pokud očekáváte, že obrázky budou příliš velké, aby 50 obrázků bylo příliš velké), můžete jednoduše vytvořit instance ImageLoaderu a předat počet obrázků, které chcete zachovat v mezipaměti.
Použití LINQ k vytvoření hierarchie elementů
Pomocí chytrého použití syntaxe inicializace JAZYKA LINQ a jazyka C# lze LINQ použít k vytvoření hierarchie prvků. Například následující kód vytvoří obrazovku z některých řetězcových polí a zpracuje výběr buňky prostřednictvím anonymní funkce, která je předána do každého StringElement
:
var rootElement = new RootElement ("LINQ root element") {
from x in new string [] { "one", "two", "three" }
select new Section (x) {
from y in "Hello:World".Split (':')
select (Element) new StringElement (y, delegate { Debug.WriteLine("cell tapped"); })
}
};
To se dá snadno kombinovat s úložištěm dat XML nebo daty z databáze a vytvářet složité aplikace téměř úplně z dat.
Rozšíření MT. D
Vytváření vlastních elementů
Vlastní prvek můžete vytvořit děděním z existujícího elementu nebo odvozením z kořenové třídy Element.
Pokud chcete vytvořit vlastní element, budete chtít přepsat následující metody:
// To release any heavy resources that you might have
void Dispose (bool disposing);
// To retrieve the UITableViewCell for your element
// you would need to prepare the cell to be reused, in the
// same way that UITableView expects reusable cells to work
UITableViewCell GetCell (UITableView tv);
// To retrieve a "summary" that can be used with
// a root element to render a summary one level up.
string Summary ();
// To detect when the user has tapped on the cell
void Selected (DialogViewController dvc, UITableView tableView, NSIndexPath path);
// If you support search, to probe if the cell matches the user input
bool Matches (string text);
Pokud váš prvek může mít proměnnou velikost, musíte implementovat rozhraní, které obsahuje jednu metodu IElementSizing
:
// Returns the height for the cell at indexPath.Section, indexPath.Row
float GetHeight (UITableView tableView, NSIndexPath indexPath);
Pokud plánujete implementaci GetCell
metody voláním base.GetCell(tv)
a přizpůsobením vrácené buňky, musíte také přepsat CellKey
vlastnost pro vrácení klíče, který bude jedinečný pro váš element, například takto:
static NSString MyKey = new NSString ("MyKey");
protected override NSString CellKey {
get {
return MyKey;
}
}
To funguje pro většinu prvků, ale ne pro StringElement
ty, StyledStringElement
které používají vlastní sadu klíčů pro různé scénáře vykreslování. V těchto třídách byste museli replikovat kód.
DialogViewControllers (DVCs)
Reflexe i rozhraní Elements API používají stejné DialogViewController
rozhraní API . Někdy budete chtít přizpůsobit vzhled zobrazení nebo můžete chtít použít některé funkce UITableViewController
, které překračují rámec základního vytváření uživatelských rozhraní.
Jedná DialogViewController
se pouze o podtřídu UITableViewController
a můžete ji přizpůsobit stejným způsobem, jakým byste přizpůsobili UITableViewController
.
Pokud například chcete změnit styl seznamu na hodnotu buď Grouped
nebo Plain
, můžete tuto hodnotu nastavit tak, že při vytváření kontroleru změníte vlastnost, například takto:
var myController = new DialogViewController (root, true) {
Style = UITableViewStyle.Grouped;
}
Pro pokročilejší přizpůsobení DialogViewController
, například nastavení jeho pozadí, byste podtřídy a přepsat správné metody, jak je znázorněno v následujícím příkladu:
class SpiffyDialogViewController : DialogViewController {
UIImage image;
public SpiffyDialogViewController (RootElement root, bool pushing, UIImage image)
: base (root, pushing)
{
this.image = image;
}
public override LoadView ()
{
base.LoadView ();
var color = UIColor.FromPatternImage(image);
TableView.BackgroundColor = UIColor.Clear;
ParentViewController.View.BackgroundColor = color;
}
}
Další bod přizpůsobení je následující virtuální metody v:DialogViewController
public override Source CreateSizingSource (bool unevenRows)
Tato metoda by měla vrátit podtřídu DialogViewController.Source
pro případy, kdy mají buňky rovnoměrnou velikost, nebo podtřídu DialogViewController.SizingSource
, pokud jsou buňky nerovnoměrné.
Toto přepsání můžete použít k zachycení některé z UITableViewSource
metod. TweetStation například používá ke sledování, kdy se uživatel posune na začátek a odpovídajícím způsobem aktualizuje počet nepřečtených tweetů.
Ověřování
Prvky neposkytují ověřování jako modely, které jsou vhodné pro webové stránky a desktopové aplikace, nemapují přímo na model interakce iPhone.
Pokud chcete provést ověření dat, měli byste to udělat, když uživatel aktivuje akci se zadanými daty. Například tlačítko Hotovo nebo Další na horním panelu nástrojů nebo některé StringElement
použité jako tlačítko pro přechod do další fáze.
Tady byste provedli základní ověření vstupu a možná složitější ověřování, jako je kontrola platnosti kombinace uživatele nebo hesla se serverem.
Způsob, jakým uživatele upozorníte na chybu, je specifická pro aplikaci. Můžete zobrazit nápovědu UIAlertView
nebo zobrazit nápovědu.
Shrnutí
Tento článek se zabývá mnoha informacemi o MonoTouch.Dialog. Probírala základy toho, jak MT. D funguje a pokrýval různé součásti, které tvoří MT.D. Ukázala také širokou škálu prvků a přizpůsobení tabulek podporovaných mt. D a probrali jsme, jak MT. D lze rozšířit o vlastní prvky. Kromě toho jsme vysvětlili podporu JSON v MT. D, který umožňuje dynamicky vytvářet elementy z FORMÁTU JSON.
Související odkazy
- Návod: Vytvoření aplikace pomocí rozhraní Elements API
- Návod: Vytvoření aplikace pomocí rozhraní Reflection API
- Návod: Vytvoření uživatelského rozhraní pomocí elementu JSON
- MonoTouch.Dialog JSON – revize
- Dialogové okno MonoTouch na GitHubu
- Referenční dokumentace třídy UITableViewController
- Referenční dokumentace třídy UINavigationController