iPhone 101: Prohlížení Nib souboru
K vytvoření nib souboru použijete Interface Builder. Jsou zde dva důležité koncepty které si ukážeme: zásuvky a objekt zástupce File's Owner
Interface Builder
Interface Builder je aplikace kterou použijete k vytvoření uživatelských rozhraní. Neprodukuje žádný zdrojový kód, pouze vám umožňuje manipulovat s objekty přímo a poté je uložit do archivu nazývaneho nib soubor.
Poznámka: I když dokument Interface Builderu může mít příponu .xib, původně to bylo .nib - (akronym pro "NeXTStep Interface Builder), takže se ze zvyku říká "nib soubory".
Za běhu, po načtení nib souboru, jsou objekty rozbaleny a uvedeny do stavu ve kterém byly když jste ukládali soubor - včetně všech spojení mezi nimi. Více se o Inerface Builderu můžete dozvědět v Interface Builder User Guide.
Prohlížení Nib souboru
V Xcode poklikejte na xib soubor kontroleru pohledu (MyViewController.xib), který se otevře v Interface Builderu.
Soubor obsahuje tři objekty - zástupce File's Owner, zástupce First Responder a pohled samotný. Pohled je zobrazen v separátním okně abyste ho mohli upravovat.
File's Owner
V dokumentu Interface Builderu se narozdíl od jiných objektů které přidáváte do rozhraní nevytvoří objekt File's Owner při načítání nib souboru. Tento objekt představuje vlastníka uživatelského rozhraní - což je obvykle objekt který načte rozhraní. Více se dozvíte v Resource Programming Guide. Ve vaší aplikaci bude File's Owner instancí třády MyViewController.
Abyste mohli vytvořit funkční spojení z a do File's Owner, potřebuje Interface Builder vedět typ objektu File's Owner. To mu sdělíte pomocí Identity Inspectoru. Nastavení bylo vlastně provedeno už když jste vytvořili nib soubor spolu s třídami kontroleru pohledu,a le je lepší se přesvědčit.
V okně dokumentu Interface Builderu označte ikonu File's Owner a vyberte položku Tools > Identity Inspector, která ho zobrazí:
V políčku Class sekce Class Identity byste měli vidět MyViewController. Je důležité vědět že toto e jen slib Interface Builderu že File's Owner bude instancí třídy MyViewController. Prosté nastavení třídy nezaručuje že File's Owner bude instance dané třídy. Při načítání nib souboru může být File's Owner jakýmkoli objektem. Pokud je instancí jiné třídy, nemusí se správně vytvořit vámi nastavené spojení.
Zásuvka pohledu
Můžete se podívat, vytvočit i zrušit spojení objektů pomocí panelu inspektoru.
V okně dokumentu Interface Builderu použijte Control-klik na soubor File's Owner, kde se vám zobrazí průsvitný panel se spojeními k File's Owner.
Jediným spojením je view kontroleru pohledu. Zásuvka je jen atribut (obvykle proměnná instance) která je připojená k položce v nib souboru. Zásuvné spojení znamená že při načítání nib souboru a rozbalení instance třídy UIView, je instance view kontroleru pohledu přiřazena danému pohledu.
Načítání Nib souboru
Kontroler pohledu načte nib soubor automaticky pomocí metody loadView. Vzpomeňte si, že jste psali to stejné jméno nib souboru k načtení jako první argument metody initWithNibname:bundle:. Metoda loadView se obvykle volá jen jednou v průběhu existence kontroleru pohledu a je použita k vytvoření pohledu. Když zavoláte metodu view kontroleru pohledu, kontroler automaticky zavolá svou vlastní metodu loadView pokud pohled nebyl dosud vytvořen (pokud kontroler vymaže svůj pohled jako výsledek, řekněme výstrahy o nedostatku paměti, zavolá se metoda loadView zase, pokud je o nezbytné).
Pokud chcete vytvořit pohled kontroleru pohledu programově, můžete překrýt metodu loadView a vytvořit pohled ve vaší implementaci.
Pokud inicializujete kontroler pohledu pomocí metody initWithNibname:bundle:, ale chcete provést ješté následnou konfiguraci po načtení pohledu, stačí překrýt metodu viewDidLoad kontroleru.
Nib soubory můžete načítat svépomocí použitím instance třídy NSBundle. O načítání nib souborů se můžete dozvědět více v Resource Programming Guide.
Test aplikace
Abyse se ujistili že vaše aplikace funguje správně, můžete nastavit barvu pozadí pohledu na jinou barvu než bílou a ověřit si tak že se po spuštění aplikce zobrazí správná barva.
V Interface Builderu vyberte Tools > Attributes Inspector.
Kliknětet na políčko Background a vyberte novou barvu.
Uložte nib soubor.
Přeložte a spusťte projekt (kliknutím na Build and Go).
Vaše aplikace by se měla přeložit bez chyb a měli byste vidět v simulátoru obrazovku s vámi vybranou barvou.
Nastavte barvu pozadí pohledu zpět na bílou a uložte nib soubor.
Rekapitulace
V této kapitole jste se dozvěděli něco o nib souboru, zásuvkách a nastavili jste barvu pozadí pohledu. Také jste se dozvěděli nové informace o načítání zdrojů a jak kontroler pohledu načítá nib soubor.