16
Storyboards Dirk Koller Effizientes Arbeiten mit Mittwoch, 8. Februar 2012

Effizientes Arbeiten mit Storyboards

Embed Size (px)

Citation preview

Page 1: Effizientes Arbeiten mit Storyboards

StoryboardsDirk Koller

Effizientes Arbeiten mit

Mittwoch, 8. Februar 2012

Page 2: Effizientes Arbeiten mit Storyboards

Agenda

• Was sind Storyboards?

• Szenen, Beziehungen und Übergänge

• Statische und dynamische Tabellenzellen

• Datenübergabe und manuelles Ausführen

• Vor- und Nachteile

Mittwoch, 8. Februar 2012

Page 3: Effizientes Arbeiten mit Storyboards

Was sind Storyboards?

• Ablaufpläne, „Workflow“

• Storyboard-Datei

• Bearbeitung mit graphischem Editor

• Szenen, Beziehungen & Übergänge

Mittwoch, 8. Februar 2012

Page 4: Effizientes Arbeiten mit Storyboards

AufbauSzene

Dock

Übergang

Einstieg

Mittwoch, 8. Februar 2012

Page 5: Effizientes Arbeiten mit Storyboards

Szene

• Szene = View Controller

• iPhone: Eine Szene pro Screen

• iPad: Evtl. Mehrere Szenen pro Screen

DocumentOutline

Mittwoch, 8. Februar 2012

Page 6: Effizientes Arbeiten mit Storyboards

Beziehung (Relationship)

• Container-View Controller

• Im Document Outline sichtbar

Mittwoch, 8. Februar 2012

Page 7: Effizientes Arbeiten mit Storyboards

Übergang (Segue)

• Übergang zwischen Szenen

• Source & Destination

• Typen:

• Push

• Modal (Effekt wählbar)

• Popover (iPad)

• Custom

Mittwoch, 8. Februar 2012

Page 8: Effizientes Arbeiten mit Storyboards

Custom Segue

@implementation MyCustomSegue- (void)perform {

[self.sourceViewControllerpresentViewController:self. destinationViewController animated:NO completion:nil];

}@end

Mittwoch, 8. Februar 2012

Page 9: Effizientes Arbeiten mit Storyboards

Statische Zellen

• Alle Zellen werden gestaltet

• Für fixe Tabellen (Menüs!)

Mittwoch, 8. Februar 2012

Page 10: Effizientes Arbeiten mit Storyboards

Dynamische Zellen

• Zellen mit veränderlichen Inhalt

• Vordefinierte Typen oder „Custom Cells“

• Eine Zelle als Template

UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"CellIdentifier"];

Mittwoch, 8. Februar 2012

Page 11: Effizientes Arbeiten mit Storyboards

Datenübergabe

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {

if([[segue identifier] isEqualToString:@"ShowCustomerDetails"]) { CustomerDetailViewController *detailViewController =

[segue destinationViewController]; detailViewController.customer = customer;

} else if ([[segue identifier] isEqualToString:@"AddCustomer"]) {

...}

}

Mittwoch, 8. Februar 2012

Page 12: Effizientes Arbeiten mit Storyboards

Manuelles Ausführen

[self performSegueWithIdentifier:@"AddCustomer" sender:sender];

Mittwoch, 8. Februar 2012

Page 13: Effizientes Arbeiten mit Storyboards

Vorteile

• Übersicht App-Workflow

• Spart Code und Zeit

• Konzeptionell einsetzbar

• „Rapid Prototyping“

Mittwoch, 8. Februar 2012

Page 14: Effizientes Arbeiten mit Storyboards

Nachteile

• Probleme mit komplexen Views

• Bei sehr vielen Szenen schwer handhabbar

• Groooßes Display erforderlich

Mittwoch, 8. Februar 2012

Page 15: Effizientes Arbeiten mit Storyboards

Quellen

• WWDC-Session Video 309 „Introducing to Storyboarding“

• Ray Wenderlich‘s „iOS 5 by Tutorials“ (www.raywenderlich.com)

• mobile Developer 1/2012: „Ein Drehbuch für die App“

Mittwoch, 8. Februar 2012

Page 16: Effizientes Arbeiten mit Storyboards

www.dirkkoller.de

Mittwoch, 8. Februar 2012