Introduction to Storyboarding

Session 309 Joshua Pennington Interface Builder Engineer

These are confidential sessions—please refrain from streaming, blogging, or taking pictures

1 2 3 H

Key Concepts Moving Data API Adoption

4 H

Key Concepts Moving Data API Adoption

5 6 Segue

• Navigation between scenes • Push, Modal, Popover, and more • Customizable

7 H

Key Concepts Moving Data API Adoption

8 Moving Data Between Controllers

• Passing data to new scenes • Bringing results back

9 -[UIViewController prepareForSegue:sender:]

10 Moving Data Between Controllers Passing data down • Invoked on source • Override to pass data

prepareForSegue

11 Moving Data Between Controllers Getting results back • Pass object back via delegate

Delegate

12 Prototype-based Tables

• Easy to create • Efficient • Dequeue copies at runtime

13 Static Table Views

• Design cells inline • Sections, headers, and footers • No data source!

14 15 Demo Building DailyBuzz

16 Recap What you just saw • Building scenes and segues • Passing Data • Table View support

17 Storyboarding in Depth Tips, tricks, and advanced practices

Rob Marini Interface Builder Engineer

18 H

Key Concepts Moving Data API Adoption

19 H

Key Concepts Moving Data API Adoption

20 Storyboards at Runtime Interacting with Storyboards in code

21 Storyboards at Runtime Interacting with Storyboards in code

22 UIStoryboard Runtime Representation of Your Editor

23 UIStoryboard Runtime Representation of Your Editor

24 UIStoryboard Runtime Representation of Your Editor

25 UIStoryboard Loading a Storyboard • Loaded on demand +[UIStoryboard storyboardWithName::] • Set up for you by UIApplication

UIMainStoryboardFile

26 UIStoryboard Instantiating View Controllers • Starting Scene of a Storyboard -[UIStoryboard instantiateInitialViewController] • Arbitrary View Controllers by identifier -[UIStoryboard instantiateViewControllerWithIdentifier:]

27 UIStoryboard Storyboard Internals

28 UIStoryboard Storyboard Internals • Familiar override points for custom initialization -[UIViewController viewDidLoad] -[NSObject awakeFromNib] -[UIViewController initWithCoder:]

29 UIStoryboard Storyboard Internals • Familiar override points for custom initialization -[UIViewController viewDidLoad] -[NSObject awakeFromNib] -[UIViewController initWithCoder:]

30 UIViewController Passing Data and Context • Setting up a downstream View Controller -[UIViewController prepareForSegue:sender:] • Loading other View Controllers from a Storyboard -[UIViewController storyboard] • Performing a Segue -[UIViewController performSegueWithIdentifier:sender:]

31 UIViewController Passing Data and Context • Setting up a downstream View Controller -[UIViewController prepareForSegue:sender:] • Loading other View Controllers from a Storyboard -[UIViewController storyboard] • Performing a Segue -[UIViewController performSegueWithIdentifier:sender:]

32 UIStoryboardSegue Preparing for a Segue • Context for setup -[UIStoryboardSegue destinationViewController] -[UIStoryboardSegue identifier] • UIStoryboardPopoverSegue -[UIStoryboardPopoverSegue popoverController]

33 UIStoryboardSegue Performing a Segue • Context for setup -[UIStoryboardSegue sourceViewController] -[UIStoryboardSegue destinationViewController] • Performing the visual transition -[UIStoryboardSegue perform]

34 H

Key Concepts Moving Data API Adoption

35 H

Key Concepts Moving Data API Adoption

36 Roadmap Adopting Storyboards in your applications • Designed to be flexible • Wholesale conversion ■ One Storyboard for entire application • Incremental adoption ■ Storyboard as you go

37 Road Map Extending recipes • Existing application • Load Storyboard for new UI

38 Road Map Extending recipes • Existing application • Load Storyboard for new UI

39 Road Map Extending recipes • Existing application • Load Storyboard for new UI

40 Demo Extending your applications

41 Recap What you just saw • Can load a Storyboard for all or part of an application UI • Creating and using Custom Segues

42 Key Points What you just saw • Introduction to Storyboards • Building a Storyboard-based iPhone application • Storyboards at Runtime • Leveraging Storyboards in existing applications

43 Related Sessions

Pacific Heights Using Interface Builder in 4 Tuesday 2:00PM

Pacific Heights What’s New in Cocoa Touch Thursday 4:30PM

Mission Core Animation Essentials Thursday 11:30AM

44 Labs

Developer Tools Lab B Interface Builder Storyboarding Lab Wednesday 2:00PM

Application Frameworks Lab D Cocoa Touch Lab Wednesday 2:00PM

45 More Information

Michael Jurewitz Developer Tools Evangelist [email protected] Documentation What’s New in iOS 5 http://developer.apple.com/iOS Forums http://devforums.apple.com

46 47