LEARNING IPADSTORYBOARDS IN OBJ-C      LESSON 1                      Rich Helton           Rhelton_1@yahoo.com            ...
INTRO TOSTORYBOARDS
Disclaimer• This training PowerPoint is in no means  reproducing the documents that it may  reference.• Which also means t...
Storyboards -- Apple• In iOS5, Apple introduced a concept called  Storyboards.• A Storyboard is a visual representation of...
Storyboards -- Apple• A Storyboard is a type of file that is opened  and designed in Xcode’s Interface Builder.• It provid...
Storyboards – File type• The Storyboard file is a CocoaTouch XIB  (Apple XML) file type for designing in  Interface Builder
The Storyboard file in Xcode
Storyboards -- segue• The segue manages the transitions between  the scenes and passes data with a “sender”.
Storyboards -- dock• The dock is used to define outlets and actions  between the view controller and views.
Storyboards -- scene• The iPad can have multiple scenes appear at  once, but the scene is similar to a View.
Running a sample showing navigation
Storyboards – the object• Storyboards are also a UIStoryboard object  that encapsulates the storyborad resource  file.• ht...
Storyboards – a collection ofcontrollers• Storyboards holds a set of view controllers.• http://developer.apple.com/library...
Storyboards – a collection ofcontrollers• Storyboards holds a set of view controllers.
Storyboards – A few more notes• I like to think of Storyboard as a visual workflow,  that is stored in a storyboard file a...
Storyboards – A few more notes
Storyboards – A few more notesAn Application will be made up of many UIKit  components, like UIApplication, UIWindows  and...
Storyboards – A few more notes
WALKINGTHROUGH ACLASSICSAMPLE
Storyboards Start• Apple has created a good example called  “Your Second iOS App” found at  https://developer.apple.com/li...
We will start with a Master-DetailProject in Xcode
Master-Detail• A master-detail interface displays a master  list and the details for the currently selected  item. Like a ...
Xcode overview• https://developer.apple.com/library/ios/#doc  umentation/ToolsLanguages/Conceptual/Xco  de4UserGuide/000-A...
About Xcode
Create a Storyboard Master-Detailproject
It has an iPad and iPhone Storyboardin Universal
Running the blank template alreadyhas something …
WHAT WAS JUST BUILT?
Looking at some of the files• All iOS projects will have a group of files that  will be similar, for example, an AppDelega...
Similar files
The plist (Property List)• All iOS projects have a .plist, usually named after  the project, that conains icons, gifs, but...
The plist , a reference• A reference can be found at  https://developer.apple.com/library/mac/#d  ocumentation/Cocoa/Conce...
In our example…
The main function• All C apps, Objective-C apps, C++ apps, and  Console C# programs start with a “main”  function.• In man...
Our main function
The AppDelegate Class• The AppDelegate is the class for startup and  shutdown responsibilities.• It will normally have fun...
The UIApplicationDelegate• See  https://developer.apple.com/library/ios/#docu  mentation/UIKit/Reference/UIApplicationDele...
Our AppDelegate• Notice the “didFinishLaunchingWithOptions”  function launching the Controllers.
The Controllers• All iOS applications are based on the Model-  View-Controller design pattern.• All will also likely be ba...
Our Controllers• Here they are:
Our Controllers in the storyboard
A few words about MVC• The Model-View-Controller (MVC):• http://en.wikipedia.org/wiki/Model–view–  controller
A few words about UIKit.h• UIKit is the framework for user interfaces in iOS.• http://developer.apple.com/library/ios/#doc...
Notice the Quick Help
LET’S WORK ON THEPROGRAM
First, we will add the modelBirdSightingFile->New File …
Add BirdSighting• Select• A header, BirdSighting.h, and source file,  BirdSighting.m is created:
Add some fields to BirdSighting• Add some properties, which are fields or  variables, and an init function to BirdSighting...
BirdSighting fields• These fields will be the Bird’s name, location  of sighting and date seen.
A note about the jump bar• We can jump to files and functions and  properties within the files by using the  navigation ju...
We will define the properties andfunctions
Learning Objective-C• Objective-C, is based on the C language, and  it made sense to me when I thought of it as  wrappers,...
@synthesize• We used @synthesize to tell the compiler to  create the accessor methods, i.e. getters and  setters.
Now define the Data Controller• We have the getters/setters which is the model,  now define the Controller classes.• We wi...
Create the Data Controller• We will create a BirdDataSightingController  just like the BirdSighting class.
Now declare the Data ControllerHeader
Data Controller• We will have a current count and index to keep  track where we are in the array.• The Array will be NSMut...
BirdSightingDataController.m
BirdSightingDataController.mcon’t
Check the identity ofBirdMasterViewController
Deviations and Disclaimer• I have a referenced an Apple example,  Second iOS App Tutorial and am walking  through a simila...
ADDING A TABLE VIEWCONTROLLER
Introduction• UIViewController is one of the referenced  classes that controllers will be derived from.• Like most MVC fra...
Introduction references• http://developer.apple.com/library/ios/#doc  umentation/uikit/reference/UIViewController  _Class/...
Adding the View• As mentioned in MVC, all Controllers have  Views.• The View does not have to be code.• As in many iOS pro...
Adding AddSightingViewController• Other examples may add this later, as file are  filled in piecemeal.• I simply like to c...
AddSightingViewController.h stub• Now we see that the header is derived  ffromUITableViewController, no problem.
AddSightingViewController.m stub• Now we see that the source has many pre-  populated methods to follow the lifecyle of  t...
Adding the Object• The Controller Scene will likely start from the  Object Library:
Adding the Table View Controller• We will add a UITableViewController and Embed  a Navigation Controller with it:
Setting the UITableViewController• We will set the UITableViewController to the custom  class AddSightingViewController, b...
Changes the name
Setting the Table View Attributes toStatic Cells• Next, we will set the Table View to Static Cells instead  of Dynamic Cel...
Select the Table View in hierarchy, andset to Static Cells in the attributes.
Delete one of the Table View Cells, weonly need 2
Add labels and text fields for “BirdName” and “Location”….
Add Cancel and Done Bar ButtonItems….
Create Outlets to the Text Fields toallow communication with theController (using control key toControl-Drag and Editor As...
More on Outlets• Outlets can be defined through Xcode’s Interface  Builder.• They are defined with the type qualifier  IBO...
Defining the Outlet in InterfaceBuilder with birdNameInput andlocationInput.
Code is generated in the Controllerwith IBOutlet pointers• The Controller can now send text to the text  field via this IB...
It also added some code into theAddSightViewController.m
Now we add Actions that will allowthe Buttons to communicate to theController
More on Actions• Outlets will allow Controllers to talk to the View,  Actions will allow the View to talk to the  Controll...
Declare the cancel Action
Declare the done Action
Add delegates in the Table View forthe text fields• Control-Drag from the Bird Name and  Location text fields to the dock ...
Add delegates in the Table View forthe text fields
Don’t forget, the storyboard file is XIBand we can check to see if thedelegate was added to the text field.Add delegates i...
What we have
Part of the XIB
Add the protocol methods delegatesin the Table View for the text fields• Control-Drag from the Bird Name and  Location tex...
Add delegate declarations in theheader
After delegate declarations inAddSightingViewController.h• We will add AddSightingViewControllerDelegate code:
Add Table view delegate definitions inAddSightingViewController.m• We will add Table view delegate code to capture user  i...
Pragma marking ..• The “pragma mark” helps us locate areas  with the Navigation Toolbar for the editor:
Now that we have the AddSightingViewControllerdefined, we need to add it to theBirdsMasterViewController to get called fro...
We will add the Segue through an AddButton on the Master Controller.
Adding the segue with a Control-Dragfrom the (+) to the NavigationController
The modal segue• A modal segue will present the destination of the view controller,  in this instance the Add Sighting Vie...
We will start adding theAddSightingViewController code intothe BirdMasterViewController thatcalls it.• Start by declaring ...
Next, add the piece inBirdMasterViewController’sprepareForSegue tocall the Views based on segue name.
Next, add the piece inBirdMasterViewController’s that cancall the Cancel and Done buttons.
Compiler errors may start to occur…• There may be compiler errors in the Main  Controller now, especially since the  dataC...
DETAILS VIEWSCONTROLLER
BirdsDetailViewController• The BirdsDetailViewController will display the  fields of the BirdSightings model that have  al...
BirdsDetailViewController.h• I added the bird name, location and date in  the header file, sometimes I do this ahead of  t...
Designing the Scene• We are going to delete Birds Detail View  Controller and replace it with a generic Table  View Contro...
Add the Custom Class name• Name is BirdsDetailViewController
Adding the segue push from theMaster Scene• We can delete the extra Navigation Controller  that had a segue to BirdsDetail...
Adding the segue push from theMaster Scene• We will Control-Drag from the table cell this  time instead of the Add button ...
Adding the segue name• Set the segue name to ShowSightingDetails
We should be here now
Reviewing the segue name• We can open the storyboard file up as  source, XIB, or XML, and see that the segues  were named ...
Starting on the Table View cells• Set the Content Attribute to Static Cells.
Adding the Labels• Add the labels with from the Object Utilities  and label them Bird Name, Location and  Date.
Adding the Labels• Also add the labels to display the bird name,  location and date on the left of the description  labels...
Adding the label names• Control-Drag from the Controllers Object  Dock to each of the display labels.
Adding the label names• Add the appropriate label name,  birdNameLabel, locationLabel, and dateLabel.  They should match t...
Adding the label names• They can be checked by right clicking on the  Label
Adding the label names• You can also see the link in  BirdsDetailViewController.h, clinking on the  reference will take yo...
Adding code toBirdsDetailViewController.m• Add @sythesize to values and create a  configView to format the data.
RECAP SOME OFTHE STORYBOARD
If things worked well…The We have allthe major pieces defined.
More detail …
More detail …
This is the MainStoryboard_iPhone• For simplicity of this first time, we are going  to just re-use the same storyboard for...
This is the MainStoryboard_iPhone• For simplicity of this first time, we are going  to just re-use the same storyboard for...
Now mainStoryboard_iPad• After copying the iPhone storyboard’s source  into the iPad storyboard, the targetRuntime  has to...
In Interface Builder• IB now looks the same for the iPad :
CONNECTING ALLTHE PIECES
We have all the major pieces defined.• Up until this point, all of the Storyboard  pieces and classes have been created.• ...
We always start with the main.m• The main function always get called first, and it will call  the AppDelegate.• The BirdsA...
BirdsAppDelegate.m will call …• Besides stubbed out functions, all the work will  be done in didFinishLaunchingWithOptions...
BirdsAppDelegate.m
BirdsMasterViewController.m will call• This View will display the array list of  BirdSightings.• If the Add button is push...
BirdsMasterViewController.h• The Master View Header will declare the two  controllers that is will call:
BirdsMasterViewController.m• The prepareForSegue function is very important,  and its purpose is to execute the appropriat...
Sent to a Controller ..• If (+), the ShowAddSightingView is referenced to  call the AddSightingView Controller.• If a line...
If a detail selected, thenBirdsDetailViewController• This controller will just get the data from row,  and filled in the f...
If (+) selected, thenAddSightingsViewController• This controller will use outlets and delegates to  fill the list from the...
Add delegate declarations inAddSightingViewController.h• We will add AddSightingViewControllerDelegate code:
Add Table view delegate definitions inAddSightingViewController.m• We will add Table view delegate code to capture user  i...
RUNNING THESAMPLE
Click on to Run and ensure it is set toiPad
Master Controller
Hit Add (+)• Add (+) goes to AddSightingViewController
Hit Done, adds the record for now, aBirdSighting model.
Select the line takes you to theBirdsDetailViewController. Click BirdSightings to return to the MainController.
Looking at it on the iPhone
ADDING A A SPLITVIEWCONTROLLERFOR IPAD
The Split View Controller ..• The Split View Controller manages two panes  of information.http://developer.apple.com/libra...
The Split View Controller ..• They can be created programmatically.
For the iPadstroyboard, we will add aSplitViewController
Delete the default attaching views
Set as Initial View and LandscapeOrientation
Setting the Split Controller ..• The relationship has to be set from the  SplitView Controller to the Master Controller  a...
Delete the Segue from MasterController and Detail View• Delete the segue from Master Controller to  Detail View.
Set the relationships from the SplitView Controller to the MasterController and Detail View withControl-Drag
Set the relationships from the SplitView Controller to the MasterController and Detail View withControl-Drag
Now we have…
Change the BirdsAppDelegate.m
We will change theBirdsDetailViewController since it willbe in the background as a modal to aUISplitViewControllerDelegate
UiSplitViewControllerDelegate• This class is used to manage the changes to  the visible view. The detail view is always  v...
BirdsDetailViewController.m• We will have to make changes to accommodate  the Master Button as a popover Controller to  ma...
BirdsDetailViewController.m• And accommodate hiding the Master  Controller when the detail is selected…
BirdsMasterViewController.h• Add the detailViewController to be referenced
BirdsMasterViewController.m• This is be used as the detailViewController that  will be always displayed in the background ...
When Running• And the Master button is selected, the  Master Controller is used as a popup.
When Running• When the detailed row is selected, it displays the  DetailViewContoller, as before, but now keeps it  reside...
When Running• When the (+) is pushed, it will still call the  prepareForSegue with the  ShowAddSightingView and work as be...
CONCLUSION
Upcoming SlideShare
Loading in …5
×

LEARNING  iPAD STORYBOARDS IN OBJ-­‐C LESSON 1

1,680 views

Published on

LEARNING  iPAD STORYBOARDS IN OBJ-­‐C LESSON 1

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,680
On SlideShare
0
From Embeds
0
Number of Embeds
5
Actions
Shares
0
Downloads
37
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide
  • This template can be used as a starter file for presenting training materials in a group setting.SectionsRight-click on a slide to add sections. Sections can help to organize your slides or facilitate collaboration between multiple authors.NotesUse the Notes section for delivery notes or to provide additional details for the audience. View these notes in Presentation View during your presentation. Keep in mind the font size (important for accessibility, visibility, videotaping, and online production)Coordinated colors Pay particular attention to the graphs, charts, and text boxes.Consider that attendees will print in black and white or grayscale. Run a test print to make sure your colors work when printed in pure black and white and grayscale.Graphics, tables, and graphsKeep it simple: If possible, use consistent, non-distracting styles and colors.Label all graphs and tables.
  • Give a brief overview of the presentation. Describe the major focus of the presentation and why it is important.Introduce each of the major topics.To provide a road map for the audience, you can repeat this Overview slide throughout the presentation, highlighting the particular topic you will discuss next.
  • Give a brief overview of the presentation. Describe the major focus of the presentation and why it is important.Introduce each of the major topics.To provide a road map for the audience, you can repeat this Overview slide throughout the presentation, highlighting the particular topic you will discuss next.
  • Give a brief overview of the presentation. Describe the major focus of the presentation and why it is important.Introduce each of the major topics.To provide a road map for the audience, you can repeat this Overview slide throughout the presentation, highlighting the particular topic you will discuss next.
  • Give a brief overview of the presentation. Describe the major focus of the presentation and why it is important.Introduce each of the major topics.To provide a road map for the audience, you can repeat this Overview slide throughout the presentation, highlighting the particular topic you will discuss next.
  • Give a brief overview of the presentation. Describe the major focus of the presentation and why it is important.Introduce each of the major topics.To provide a road map for the audience, you can repeat this Overview slide throughout the presentation, highlighting the particular topic you will discuss next.
  • Give a brief overview of the presentation. Describe the major focus of the presentation and why it is important.Introduce each of the major topics.To provide a road map for the audience, you can repeat this Overview slide throughout the presentation, highlighting the particular topic you will discuss next.
  • Give a brief overview of the presentation. Describe the major focus of the presentation and why it is important.Introduce each of the major topics.To provide a road map for the audience, you can repeat this Overview slide throughout the presentation, highlighting the particular topic you will discuss next.
  • Give a brief overview of the presentation. Describe the major focus of the presentation and why it is important.Introduce each of the major topics.To provide a road map for the audience, you can repeat this Overview slide throughout the presentation, highlighting the particular topic you will discuss next.
  • Give a brief overview of the presentation. Describe the major focus of the presentation and why it is important.Introduce each of the major topics.To provide a road map for the audience, you can repeat this Overview slide throughout the presentation, highlighting the particular topic you will discuss next.
  • Give a brief overview of the presentation. Describe the major focus of the presentation and why it is important.Introduce each of the major topics.To provide a road map for the audience, you can repeat this Overview slide throughout the presentation, highlighting the particular topic you will discuss next.
  • Give a brief overview of the presentation. Describe the major focus of the presentation and why it is important.Introduce each of the major topics.To provide a road map for the audience, you can repeat this Overview slide throughout the presentation, highlighting the particular topic you will discuss next.
  • Give a brief overview of the presentation. Describe the major focus of the presentation and why it is important.Introduce each of the major topics.To provide a road map for the audience, you can repeat this Overview slide throughout the presentation, highlighting the particular topic you will discuss next.
  • Give a brief overview of the presentation. Describe the major focus of the presentation and why it is important.Introduce each of the major topics.To provide a road map for the audience, you can repeat this Overview slide throughout the presentation, highlighting the particular topic you will discuss next.
  • Give a brief overview of the presentation. Describe the major focus of the presentation and why it is important.Introduce each of the major topics.To provide a road map for the audience, you can repeat this Overview slide throughout the presentation, highlighting the particular topic you will discuss next.
  • Give a brief overview of the presentation. Describe the major focus of the presentation and why it is important.Introduce each of the major topics.To provide a road map for the audience, you can repeat this Overview slide throughout the presentation, highlighting the particular topic you will discuss next.
  • Give a brief overview of the presentation. Describe the major focus of the presentation and why it is important.Introduce each of the major topics.To provide a road map for the audience, you can repeat this Overview slide throughout the presentation, highlighting the particular topic you will discuss next.
  • Give a brief overview of the presentation. Describe the major focus of the presentation and why it is important.Introduce each of the major topics.To provide a road map for the audience, you can repeat this Overview slide throughout the presentation, highlighting the particular topic you will discuss next.
  • Give a brief overview of the presentation. Describe the major focus of the presentation and why it is important.Introduce each of the major topics.To provide a road map for the audience, you can repeat this Overview slide throughout the presentation, highlighting the particular topic you will discuss next.
  • Give a brief overview of the presentation. Describe the major focus of the presentation and why it is important.Introduce each of the major topics.To provide a road map for the audience, you can repeat this Overview slide throughout the presentation, highlighting the particular topic you will discuss next.
  • Give a brief overview of the presentation. Describe the major focus of the presentation and why it is important.Introduce each of the major topics.To provide a road map for the audience, you can repeat this Overview slide throughout the presentation, highlighting the particular topic you will discuss next.
  • Give a brief overview of the presentation. Describe the major focus of the presentation and why it is important.Introduce each of the major topics.To provide a road map for the audience, you can repeat this Overview slide throughout the presentation, highlighting the particular topic you will discuss next.
  • Give a brief overview of the presentation. Describe the major focus of the presentation and why it is important.Introduce each of the major topics.To provide a road map for the audience, you can repeat this Overview slide throughout the presentation, highlighting the particular topic you will discuss next.
  • Give a brief overview of the presentation. Describe the major focus of the presentation and why it is important.Introduce each of the major topics.To provide a road map for the audience, you can repeat this Overview slide throughout the presentation, highlighting the particular topic you will discuss next.
  • Give a brief overview of the presentation. Describe the major focus of the presentation and why it is important.Introduce each of the major topics.To provide a road map for the audience, you can repeat this Overview slide throughout the presentation, highlighting the particular topic you will discuss next.
  • Give a brief overview of the presentation. Describe the major focus of the presentation and why it is important.Introduce each of the major topics.To provide a road map for the audience, you can repeat this Overview slide throughout the presentation, highlighting the particular topic you will discuss next.
  • Give a brief overview of the presentation. Describe the major focus of the presentation and why it is important.Introduce each of the major topics.To provide a road map for the audience, you can repeat this Overview slide throughout the presentation, highlighting the particular topic you will discuss next.
  • Give a brief overview of the presentation. Describe the major focus of the presentation and why it is important.Introduce each of the major topics.To provide a road map for the audience, you can repeat this Overview slide throughout the presentation, highlighting the particular topic you will discuss next.
  • Give a brief overview of the presentation. Describe the major focus of the presentation and why it is important.Introduce each of the major topics.To provide a road map for the audience, you can repeat this Overview slide throughout the presentation, highlighting the particular topic you will discuss next.
  • Give a brief overview of the presentation. Describe the major focus of the presentation and why it is important.Introduce each of the major topics.To provide a road map for the audience, you can repeat this Overview slide throughout the presentation, highlighting the particular topic you will discuss next.
  • Give a brief overview of the presentation. Describe the major focus of the presentation and why it is important.Introduce each of the major topics.To provide a road map for the audience, you can repeat this Overview slide throughout the presentation, highlighting the particular topic you will discuss next.
  • Give a brief overview of the presentation. Describe the major focus of the presentation and why it is important.Introduce each of the major topics.To provide a road map for the audience, you can repeat this Overview slide throughout the presentation, highlighting the particular topic you will discuss next.
  • Give a brief overview of the presentation. Describe the major focus of the presentation and why it is important.Introduce each of the major topics.To provide a road map for the audience, you can repeat this Overview slide throughout the presentation, highlighting the particular topic you will discuss next.
  • Give a brief overview of the presentation. Describe the major focus of the presentation and why it is important.Introduce each of the major topics.To provide a road map for the audience, you can repeat this Overview slide throughout the presentation, highlighting the particular topic you will discuss next.
  • Give a brief overview of the presentation. Describe the major focus of the presentation and why it is important.Introduce each of the major topics.To provide a road map for the audience, you can repeat this Overview slide throughout the presentation, highlighting the particular topic you will discuss next.
  • Give a brief overview of the presentation. Describe the major focus of the presentation and why it is important.Introduce each of the major topics.To provide a road map for the audience, you can repeat this Overview slide throughout the presentation, highlighting the particular topic you will discuss next.
  • Give a brief overview of the presentation. Describe the major focus of the presentation and why it is important.Introduce each of the major topics.To provide a road map for the audience, you can repeat this Overview slide throughout the presentation, highlighting the particular topic you will discuss next.
  • Give a brief overview of the presentation. Describe the major focus of the presentation and why it is important.Introduce each of the major topics.To provide a road map for the audience, you can repeat this Overview slide throughout the presentation, highlighting the particular topic you will discuss next.
  • Give a brief overview of the presentation. Describe the major focus of the presentation and why it is important.Introduce each of the major topics.To provide a road map for the audience, you can repeat this Overview slide throughout the presentation, highlighting the particular topic you will discuss next.
  • Give a brief overview of the presentation. Describe the major focus of the presentation and why it is important.Introduce each of the major topics.To provide a road map for the audience, you can repeat this Overview slide throughout the presentation, highlighting the particular topic you will discuss next.
  • Give a brief overview of the presentation. Describe the major focus of the presentation and why it is important.Introduce each of the major topics.To provide a road map for the audience, you can repeat this Overview slide throughout the presentation, highlighting the particular topic you will discuss next.
  • Give a brief overview of the presentation. Describe the major focus of the presentation and why it is important.Introduce each of the major topics.To provide a road map for the audience, you can repeat this Overview slide throughout the presentation, highlighting the particular topic you will discuss next.
  • Give a brief overview of the presentation. Describe the major focus of the presentation and why it is important.Introduce each of the major topics.To provide a road map for the audience, you can repeat this Overview slide throughout the presentation, highlighting the particular topic you will discuss next.
  • Give a brief overview of the presentation. Describe the major focus of the presentation and why it is important.Introduce each of the major topics.To provide a road map for the audience, you can repeat this Overview slide throughout the presentation, highlighting the particular topic you will discuss next.
  • Give a brief overview of the presentation. Describe the major focus of the presentation and why it is important.Introduce each of the major topics.To provide a road map for the audience, you can repeat this Overview slide throughout the presentation, highlighting the particular topic you will discuss next.
  • Give a brief overview of the presentation. Describe the major focus of the presentation and why it is important.Introduce each of the major topics.To provide a road map for the audience, you can repeat this Overview slide throughout the presentation, highlighting the particular topic you will discuss next.
  • Give a brief overview of the presentation. Describe the major focus of the presentation and why it is important.Introduce each of the major topics.To provide a road map for the audience, you can repeat this Overview slide throughout the presentation, highlighting the particular topic you will discuss next.
  • Give a brief overview of the presentation. Describe the major focus of the presentation and why it is important.Introduce each of the major topics.To provide a road map for the audience, you can repeat this Overview slide throughout the presentation, highlighting the particular topic you will discuss next.
  • Give a brief overview of the presentation. Describe the major focus of the presentation and why it is important.Introduce each of the major topics.To provide a road map for the audience, you can repeat this Overview slide throughout the presentation, highlighting the particular topic you will discuss next.
  • Give a brief overview of the presentation. Describe the major focus of the presentation and why it is important.Introduce each of the major topics.To provide a road map for the audience, you can repeat this Overview slide throughout the presentation, highlighting the particular topic you will discuss next.
  • Give a brief overview of the presentation. Describe the major focus of the presentation and why it is important.Introduce each of the major topics.To provide a road map for the audience, you can repeat this Overview slide throughout the presentation, highlighting the particular topic you will discuss next.
  • Give a brief overview of the presentation. Describe the major focus of the presentation and why it is important.Introduce each of the major topics.To provide a road map for the audience, you can repeat this Overview slide throughout the presentation, highlighting the particular topic you will discuss next.
  • Give a brief overview of the presentation. Describe the major focus of the presentation and why it is important.Introduce each of the major topics.To provide a road map for the audience, you can repeat this Overview slide throughout the presentation, highlighting the particular topic you will discuss next.
  • Give a brief overview of the presentation. Describe the major focus of the presentation and why it is important.Introduce each of the major topics.To provide a road map for the audience, you can repeat this Overview slide throughout the presentation, highlighting the particular topic you will discuss next.
  • Give a brief overview of the presentation. Describe the major focus of the presentation and why it is important.Introduce each of the major topics.To provide a road map for the audience, you can repeat this Overview slide throughout the presentation, highlighting the particular topic you will discuss next.
  • Give a brief overview of the presentation. Describe the major focus of the presentation and why it is important.Introduce each of the major topics.To provide a road map for the audience, you can repeat this Overview slide throughout the presentation, highlighting the particular topic you will discuss next.
  • Give a brief overview of the presentation. Describe the major focus of the presentation and why it is important.Introduce each of the major topics.To provide a road map for the audience, you can repeat this Overview slide throughout the presentation, highlighting the particular topic you will discuss next.
  • Give a brief overview of the presentation. Describe the major focus of the presentation and why it is important.Introduce each of the major topics.To provide a road map for the audience, you can repeat this Overview slide throughout the presentation, highlighting the particular topic you will discuss next.
  • Give a brief overview of the presentation. Describe the major focus of the presentation and why it is important.Introduce each of the major topics.To provide a road map for the audience, you can repeat this Overview slide throughout the presentation, highlighting the particular topic you will discuss next.
  • Give a brief overview of the presentation. Describe the major focus of the presentation and why it is important.Introduce each of the major topics.To provide a road map for the audience, you can repeat this Overview slide throughout the presentation, highlighting the particular topic you will discuss next.
  • Give a brief overview of the presentation. Describe the major focus of the presentation and why it is important.Introduce each of the major topics.To provide a road map for the audience, you can repeat this Overview slide throughout the presentation, highlighting the particular topic you will discuss next.
  • Give a brief overview of the presentation. Describe the major focus of the presentation and why it is important.Introduce each of the major topics.To provide a road map for the audience, you can repeat this Overview slide throughout the presentation, highlighting the particular topic you will discuss next.
  • Give a brief overview of the presentation. Describe the major focus of the presentation and why it is important.Introduce each of the major topics.To provide a road map for the audience, you can repeat this Overview slide throughout the presentation, highlighting the particular topic you will discuss next.
  • Give a brief overview of the presentation. Describe the major focus of the presentation and why it is important.Introduce each of the major topics.To provide a road map for the audience, you can repeat this Overview slide throughout the presentation, highlighting the particular topic you will discuss next.
  • Give a brief overview of the presentation. Describe the major focus of the presentation and why it is important.Introduce each of the major topics.To provide a road map for the audience, you can repeat this Overview slide throughout the presentation, highlighting the particular topic you will discuss next.
  • Give a brief overview of the presentation. Describe the major focus of the presentation and why it is important.Introduce each of the major topics.To provide a road map for the audience, you can repeat this Overview slide throughout the presentation, highlighting the particular topic you will discuss next.
  • Give a brief overview of the presentation. Describe the major focus of the presentation and why it is important.Introduce each of the major topics.To provide a road map for the audience, you can repeat this Overview slide throughout the presentation, highlighting the particular topic you will discuss next.
  • Give a brief overview of the presentation. Describe the major focus of the presentation and why it is important.Introduce each of the major topics.To provide a road map for the audience, you can repeat this Overview slide throughout the presentation, highlighting the particular topic you will discuss next.
  • Give a brief overview of the presentation. Describe the major focus of the presentation and why it is important.Introduce each of the major topics.To provide a road map for the audience, you can repeat this Overview slide throughout the presentation, highlighting the particular topic you will discuss next.
  • Give a brief overview of the presentation. Describe the major focus of the presentation and why it is important.Introduce each of the major topics.To provide a road map for the audience, you can repeat this Overview slide throughout the presentation, highlighting the particular topic you will discuss next.
  • Give a brief overview of the presentation. Describe the major focus of the presentation and why it is important.Introduce each of the major topics.To provide a road map for the audience, you can repeat this Overview slide throughout the presentation, highlighting the particular topic you will discuss next.
  • Give a brief overview of the presentation. Describe the major focus of the presentation and why it is important.Introduce each of the major topics.To provide a road map for the audience, you can repeat this Overview slide throughout the presentation, highlighting the particular topic you will discuss next.
  • Give a brief overview of the presentation. Describe the major focus of the presentation and why it is important.Introduce each of the major topics.To provide a road map for the audience, you can repeat this Overview slide throughout the presentation, highlighting the particular topic you will discuss next.
  • Give a brief overview of the presentation. Describe the major focus of the presentation and why it is important.Introduce each of the major topics.To provide a road map for the audience, you can repeat this Overview slide throughout the presentation, highlighting the particular topic you will discuss next.
  • Give a brief overview of the presentation. Describe the major focus of the presentation and why it is important.Introduce each of the major topics.To provide a road map for the audience, you can repeat this Overview slide throughout the presentation, highlighting the particular topic you will discuss next.
  • Give a brief overview of the presentation. Describe the major focus of the presentation and why it is important.Introduce each of the major topics.To provide a road map for the audience, you can repeat this Overview slide throughout the presentation, highlighting the particular topic you will discuss next.
  • Give a brief overview of the presentation. Describe the major focus of the presentation and why it is important.Introduce each of the major topics.To provide a road map for the audience, you can repeat this Overview slide throughout the presentation, highlighting the particular topic you will discuss next.
  • Give a brief overview of the presentation. Describe the major focus of the presentation and why it is important.Introduce each of the major topics.To provide a road map for the audience, you can repeat this Overview slide throughout the presentation, highlighting the particular topic you will discuss next.
  • Give a brief overview of the presentation. Describe the major focus of the presentation and why it is important.Introduce each of the major topics.To provide a road map for the audience, you can repeat this Overview slide throughout the presentation, highlighting the particular topic you will discuss next.
  • Give a brief overview of the presentation. Describe the major focus of the presentation and why it is important.Introduce each of the major topics.To provide a road map for the audience, you can repeat this Overview slide throughout the presentation, highlighting the particular topic you will discuss next.
  • Give a brief overview of the presentation. Describe the major focus of the presentation and why it is important.Introduce each of the major topics.To provide a road map for the audience, you can repeat this Overview slide throughout the presentation, highlighting the particular topic you will discuss next.
  • Give a brief overview of the presentation. Describe the major focus of the presentation and why it is important.Introduce each of the major topics.To provide a road map for the audience, you can repeat this Overview slide throughout the presentation, highlighting the particular topic you will discuss next.
  • Give a brief overview of the presentation. Describe the major focus of the presentation and why it is important.Introduce each of the major topics.To provide a road map for the audience, you can repeat this Overview slide throughout the presentation, highlighting the particular topic you will discuss next.
  • Give a brief overview of the presentation. Describe the major focus of the presentation and why it is important.Introduce each of the major topics.To provide a road map for the audience, you can repeat this Overview slide throughout the presentation, highlighting the particular topic you will discuss next.
  • Give a brief overview of the presentation. Describe the major focus of the presentation and why it is important.Introduce each of the major topics.To provide a road map for the audience, you can repeat this Overview slide throughout the presentation, highlighting the particular topic you will discuss next.
  • Give a brief overview of the presentation. Describe the major focus of the presentation and why it is important.Introduce each of the major topics.To provide a road map for the audience, you can repeat this Overview slide throughout the presentation, highlighting the particular topic you will discuss next.
  • Give a brief overview of the presentation. Describe the major focus of the presentation and why it is important.Introduce each of the major topics.To provide a road map for the audience, you can repeat this Overview slide throughout the presentation, highlighting the particular topic you will discuss next.
  • Give a brief overview of the presentation. Describe the major focus of the presentation and why it is important.Introduce each of the major topics.To provide a road map for the audience, you can repeat this Overview slide throughout the presentation, highlighting the particular topic you will discuss next.
  • Give a brief overview of the presentation. Describe the major focus of the presentation and why it is important.Introduce each of the major topics.To provide a road map for the audience, you can repeat this Overview slide throughout the presentation, highlighting the particular topic you will discuss next.
  • Give a brief overview of the presentation. Describe the major focus of the presentation and why it is important.Introduce each of the major topics.To provide a road map for the audience, you can repeat this Overview slide throughout the presentation, highlighting the particular topic you will discuss next.
  • Give a brief overview of the presentation. Describe the major focus of the presentation and why it is important.Introduce each of the major topics.To provide a road map for the audience, you can repeat this Overview slide throughout the presentation, highlighting the particular topic you will discuss next.
  • Give a brief overview of the presentation. Describe the major focus of the presentation and why it is important.Introduce each of the major topics.To provide a road map for the audience, you can repeat this Overview slide throughout the presentation, highlighting the particular topic you will discuss next.
  • Give a brief overview of the presentation. Describe the major focus of the presentation and why it is important.Introduce each of the major topics.To provide a road map for the audience, you can repeat this Overview slide throughout the presentation, highlighting the particular topic you will discuss next.
  • Give a brief overview of the presentation. Describe the major focus of the presentation and why it is important.Introduce each of the major topics.To provide a road map for the audience, you can repeat this Overview slide throughout the presentation, highlighting the particular topic you will discuss next.
  • Give a brief overview of the presentation. Describe the major focus of the presentation and why it is important.Introduce each of the major topics.To provide a road map for the audience, you can repeat this Overview slide throughout the presentation, highlighting the particular topic you will discuss next.
  • Give a brief overview of the presentation. Describe the major focus of the presentation and why it is important.Introduce each of the major topics.To provide a road map for the audience, you can repeat this Overview slide throughout the presentation, highlighting the particular topic you will discuss next.
  • Give a brief overview of the presentation. Describe the major focus of the presentation and why it is important.Introduce each of the major topics.To provide a road map for the audience, you can repeat this Overview slide throughout the presentation, highlighting the particular topic you will discuss next.
  • Give a brief overview of the presentation. Describe the major focus of the presentation and why it is important.Introduce each of the major topics.To provide a road map for the audience, you can repeat this Overview slide throughout the presentation, highlighting the particular topic you will discuss next.
  • Give a brief overview of the presentation. Describe the major focus of the presentation and why it is important.Introduce each of the major topics.To provide a road map for the audience, you can repeat this Overview slide throughout the presentation, highlighting the particular topic you will discuss next.
  • Give a brief overview of the presentation. Describe the major focus of the presentation and why it is important.Introduce each of the major topics.To provide a road map for the audience, you can repeat this Overview slide throughout the presentation, highlighting the particular topic you will discuss next.
  • Give a brief overview of the presentation. Describe the major focus of the presentation and why it is important.Introduce each of the major topics.To provide a road map for the audience, you can repeat this Overview slide throughout the presentation, highlighting the particular topic you will discuss next.
  • Give a brief overview of the presentation. Describe the major focus of the presentation and why it is important.Introduce each of the major topics.To provide a road map for the audience, you can repeat this Overview slide throughout the presentation, highlighting the particular topic you will discuss next.
  • Give a brief overview of the presentation. Describe the major focus of the presentation and why it is important.Introduce each of the major topics.To provide a road map for the audience, you can repeat this Overview slide throughout the presentation, highlighting the particular topic you will discuss next.
  • Give a brief overview of the presentation. Describe the major focus of the presentation and why it is important.Introduce each of the major topics.To provide a road map for the audience, you can repeat this Overview slide throughout the presentation, highlighting the particular topic you will discuss next.
  • Give a brief overview of the presentation. Describe the major focus of the presentation and why it is important.Introduce each of the major topics.To provide a road map for the audience, you can repeat this Overview slide throughout the presentation, highlighting the particular topic you will discuss next.
  • Give a brief overview of the presentation. Describe the major focus of the presentation and why it is important.Introduce each of the major topics.To provide a road map for the audience, you can repeat this Overview slide throughout the presentation, highlighting the particular topic you will discuss next.
  • Give a brief overview of the presentation. Describe the major focus of the presentation and why it is important.Introduce each of the major topics.To provide a road map for the audience, you can repeat this Overview slide throughout the presentation, highlighting the particular topic you will discuss next.
  • Give a brief overview of the presentation. Describe the major focus of the presentation and why it is important.Introduce each of the major topics.To provide a road map for the audience, you can repeat this Overview slide throughout the presentation, highlighting the particular topic you will discuss next.
  • Give a brief overview of the presentation. Describe the major focus of the presentation and why it is important.Introduce each of the major topics.To provide a road map for the audience, you can repeat this Overview slide throughout the presentation, highlighting the particular topic you will discuss next.
  • Give a brief overview of the presentation. Describe the major focus of the presentation and why it is important.Introduce each of the major topics.To provide a road map for the audience, you can repeat this Overview slide throughout the presentation, highlighting the particular topic you will discuss next.
  • Give a brief overview of the presentation. Describe the major focus of the presentation and why it is important.Introduce each of the major topics.To provide a road map for the audience, you can repeat this Overview slide throughout the presentation, highlighting the particular topic you will discuss next.
  • Give a brief overview of the presentation. Describe the major focus of the presentation and why it is important.Introduce each of the major topics.To provide a road map for the audience, you can repeat this Overview slide throughout the presentation, highlighting the particular topic you will discuss next.
  • Give a brief overview of the presentation. Describe the major focus of the presentation and why it is important.Introduce each of the major topics.To provide a road map for the audience, you can repeat this Overview slide throughout the presentation, highlighting the particular topic you will discuss next.
  • Give a brief overview of the presentation. Describe the major focus of the presentation and why it is important.Introduce each of the major topics.To provide a road map for the audience, you can repeat this Overview slide throughout the presentation, highlighting the particular topic you will discuss next.
  • Give a brief overview of the presentation. Describe the major focus of the presentation and why it is important.Introduce each of the major topics.To provide a road map for the audience, you can repeat this Overview slide throughout the presentation, highlighting the particular topic you will discuss next.
  • Give a brief overview of the presentation. Describe the major focus of the presentation and why it is important.Introduce each of the major topics.To provide a road map for the audience, you can repeat this Overview slide throughout the presentation, highlighting the particular topic you will discuss next.
  • Give a brief overview of the presentation. Describe the major focus of the presentation and why it is important.Introduce each of the major topics.To provide a road map for the audience, you can repeat this Overview slide throughout the presentation, highlighting the particular topic you will discuss next.
  • Give a brief overview of the presentation. Describe the major focus of the presentation and why it is important.Introduce each of the major topics.To provide a road map for the audience, you can repeat this Overview slide throughout the presentation, highlighting the particular topic you will discuss next.
  • Give a brief overview of the presentation. Describe the major focus of the presentation and why it is important.Introduce each of the major topics.To provide a road map for the audience, you can repeat this Overview slide throughout the presentation, highlighting the particular topic you will discuss next.
  • Give a brief overview of the presentation. Describe the major focus of the presentation and why it is important.Introduce each of the major topics.To provide a road map for the audience, you can repeat this Overview slide throughout the presentation, highlighting the particular topic you will discuss next.
  • Give a brief overview of the presentation. Describe the major focus of the presentation and why it is important.Introduce each of the major topics.To provide a road map for the audience, you can repeat this Overview slide throughout the presentation, highlighting the particular topic you will discuss next.
  • Give a brief overview of the presentation. Describe the major focus of the presentation and why it is important.Introduce each of the major topics.To provide a road map for the audience, you can repeat this Overview slide throughout the presentation, highlighting the particular topic you will discuss next.
  • Give a brief overview of the presentation. Describe the major focus of the presentation and why it is important.Introduce each of the major topics.To provide a road map for the audience, you can repeat this Overview slide throughout the presentation, highlighting the particular topic you will discuss next.
  • Give a brief overview of the presentation. Describe the major focus of the presentation and why it is important.Introduce each of the major topics.To provide a road map for the audience, you can repeat this Overview slide throughout the presentation, highlighting the particular topic you will discuss next.
  • Give a brief overview of the presentation. Describe the major focus of the presentation and why it is important.Introduce each of the major topics.To provide a road map for the audience, you can repeat this Overview slide throughout the presentation, highlighting the particular topic you will discuss next.
  • Give a brief overview of the presentation. Describe the major focus of the presentation and why it is important.Introduce each of the major topics.To provide a road map for the audience, you can repeat this Overview slide throughout the presentation, highlighting the particular topic you will discuss next.
  • Give a brief overview of the presentation. Describe the major focus of the presentation and why it is important.Introduce each of the major topics.To provide a road map for the audience, you can repeat this Overview slide throughout the presentation, highlighting the particular topic you will discuss next.
  • Give a brief overview of the presentation. Describe the major focus of the presentation and why it is important.Introduce each of the major topics.To provide a road map for the audience, you can repeat this Overview slide throughout the presentation, highlighting the particular topic you will discuss next.
  • Give a brief overview of the presentation. Describe the major focus of the presentation and why it is important.Introduce each of the major topics.To provide a road map for the audience, you can repeat this Overview slide throughout the presentation, highlighting the particular topic you will discuss next.
  • Give a brief overview of the presentation. Describe the major focus of the presentation and why it is important.Introduce each of the major topics.To provide a road map for the audience, you can repeat this Overview slide throughout the presentation, highlighting the particular topic you will discuss next.
  • Give a brief overview of the presentation. Describe the major focus of the presentation and why it is important.Introduce each of the major topics.To provide a road map for the audience, you can repeat this Overview slide throughout the presentation, highlighting the particular topic you will discuss next.
  • Give a brief overview of the presentation. Describe the major focus of the presentation and why it is important.Introduce each of the major topics.To provide a road map for the audience, you can repeat this Overview slide throughout the presentation, highlighting the particular topic you will discuss next.
  • Give a brief overview of the presentation. Describe the major focus of the presentation and why it is important.Introduce each of the major topics.To provide a road map for the audience, you can repeat this Overview slide throughout the presentation, highlighting the particular topic you will discuss next.
  • Give a brief overview of the presentation. Describe the major focus of the presentation and why it is important.Introduce each of the major topics.To provide a road map for the audience, you can repeat this Overview slide throughout the presentation, highlighting the particular topic you will discuss next.
  • Give a brief overview of the presentation. Describe the major focus of the presentation and why it is important.Introduce each of the major topics.To provide a road map for the audience, you can repeat this Overview slide throughout the presentation, highlighting the particular topic you will discuss next.
  • Give a brief overview of the presentation. Describe the major focus of the presentation and why it is important.Introduce each of the major topics.To provide a road map for the audience, you can repeat this Overview slide throughout the presentation, highlighting the particular topic you will discuss next.
  • Give a brief overview of the presentation. Describe the major focus of the presentation and why it is important.Introduce each of the major topics.To provide a road map for the audience, you can repeat this Overview slide throughout the presentation, highlighting the particular topic you will discuss next.
  • Give a brief overview of the presentation. Describe the major focus of the presentation and why it is important.Introduce each of the major topics.To provide a road map for the audience, you can repeat this Overview slide throughout the presentation, highlighting the particular topic you will discuss next.
  • Give a brief overview of the presentation. Describe the major focus of the presentation and why it is important.Introduce each of the major topics.To provide a road map for the audience, you can repeat this Overview slide throughout the presentation, highlighting the particular topic you will discuss next.
  • Give a brief overview of the presentation. Describe the major focus of the presentation and why it is important.Introduce each of the major topics.To provide a road map for the audience, you can repeat this Overview slide throughout the presentation, highlighting the particular topic you will discuss next.
  • Give a brief overview of the presentation. Describe the major focus of the presentation and why it is important.Introduce each of the major topics.To provide a road map for the audience, you can repeat this Overview slide throughout the presentation, highlighting the particular topic you will discuss next.
  • Give a brief overview of the presentation. Describe the major focus of the presentation and why it is important.Introduce each of the major topics.To provide a road map for the audience, you can repeat this Overview slide throughout the presentation, highlighting the particular topic you will discuss next.
  • Give a brief overview of the presentation. Describe the major focus of the presentation and why it is important.Introduce each of the major topics.To provide a road map for the audience, you can repeat this Overview slide throughout the presentation, highlighting the particular topic you will discuss next.
  • Give a brief overview of the presentation. Describe the major focus of the presentation and why it is important.Introduce each of the major topics.To provide a road map for the audience, you can repeat this Overview slide throughout the presentation, highlighting the particular topic you will discuss next.
  • Give a brief overview of the presentation. Describe the major focus of the presentation and why it is important.Introduce each of the major topics.To provide a road map for the audience, you can repeat this Overview slide throughout the presentation, highlighting the particular topic you will discuss next.
  • Give a brief overview of the presentation. Describe the major focus of the presentation and why it is important.Introduce each of the major topics.To provide a road map for the audience, you can repeat this Overview slide throughout the presentation, highlighting the particular topic you will discuss next.
  • Give a brief overview of the presentation. Describe the major focus of the presentation and why it is important.Introduce each of the major topics.To provide a road map for the audience, you can repeat this Overview slide throughout the presentation, highlighting the particular topic you will discuss next.
  • Give a brief overview of the presentation. Describe the major focus of the presentation and why it is important.Introduce each of the major topics.To provide a road map for the audience, you can repeat this Overview slide throughout the presentation, highlighting the particular topic you will discuss next.
  • Give a brief overview of the presentation. Describe the major focus of the presentation and why it is important.Introduce each of the major topics.To provide a road map for the audience, you can repeat this Overview slide throughout the presentation, highlighting the particular topic you will discuss next.
  • Give a brief overview of the presentation. Describe the major focus of the presentation and why it is important.Introduce each of the major topics.To provide a road map for the audience, you can repeat this Overview slide throughout the presentation, highlighting the particular topic you will discuss next.
  • Give a brief overview of the presentation. Describe the major focus of the presentation and why it is important.Introduce each of the major topics.To provide a road map for the audience, you can repeat this Overview slide throughout the presentation, highlighting the particular topic you will discuss next.
  • Give a brief overview of the presentation. Describe the major focus of the presentation and why it is important.Introduce each of the major topics.To provide a road map for the audience, you can repeat this Overview slide throughout the presentation, highlighting the particular topic you will discuss next.
  • Give a brief overview of the presentation. Describe the major focus of the presentation and why it is important.Introduce each of the major topics.To provide a road map for the audience, you can repeat this Overview slide throughout the presentation, highlighting the particular topic you will discuss next.
  • Give a brief overview of the presentation. Describe the major focus of the presentation and why it is important.Introduce each of the major topics.To provide a road map for the audience, you can repeat this Overview slide throughout the presentation, highlighting the particular topic you will discuss next.
  • Give a brief overview of the presentation. Describe the major focus of the presentation and why it is important.Introduce each of the major topics.To provide a road map for the audience, you can repeat this Overview slide throughout the presentation, highlighting the particular topic you will discuss next.
  • Give a brief overview of the presentation. Describe the major focus of the presentation and why it is important.Introduce each of the major topics.To provide a road map for the audience, you can repeat this Overview slide throughout the presentation, highlighting the particular topic you will discuss next.
  • Give a brief overview of the presentation. Describe the major focus of the presentation and why it is important.Introduce each of the major topics.To provide a road map for the audience, you can repeat this Overview slide throughout the presentation, highlighting the particular topic you will discuss next.
  • Give a brief overview of the presentation. Describe the major focus of the presentation and why it is important.Introduce each of the major topics.To provide a road map for the audience, you can repeat this Overview slide throughout the presentation, highlighting the particular topic you will discuss next.
  • Give a brief overview of the presentation. Describe the major focus of the presentation and why it is important.Introduce each of the major topics.To provide a road map for the audience, you can repeat this Overview slide throughout the presentation, highlighting the particular topic you will discuss next.
  • Give a brief overview of the presentation. Describe the major focus of the presentation and why it is important.Introduce each of the major topics.To provide a road map for the audience, you can repeat this Overview slide throughout the presentation, highlighting the particular topic you will discuss next.
  • Give a brief overview of the presentation. Describe the major focus of the presentation and why it is important.Introduce each of the major topics.To provide a road map for the audience, you can repeat this Overview slide throughout the presentation, highlighting the particular topic you will discuss next.
  • LEARNING  iPAD STORYBOARDS IN OBJ-­‐C LESSON 1

    1. 1. LEARNING IPADSTORYBOARDS IN OBJ-C LESSON 1 Rich Helton Rhelton_1@yahoo.com August 28, 2012
    2. 2. INTRO TOSTORYBOARDS
    3. 3. Disclaimer• This training PowerPoint is in no means reproducing the documents that it may reference.• Which also means that the references may change at the owners will.• It only provides references to public sites as a means for the person reading this to do more research and verify any information at their leisure.• The purpose of this document’s original intent was simply to provide myself a means of walking through various solutions and reference points.• I offer no personal support of this document and release it “as is” with no commercial intent.
    4. 4. Storyboards -- Apple• In iOS5, Apple introduced a concept called Storyboards.• A Storyboard is a visual representation of the user interface of an iOS application.• See http://developer.apple.com/library/mac/#do cumentation/General/Conceptual/Devpedia- CocoaApp/Storyboard.html
    5. 5. Storyboards -- Apple• A Storyboard is a type of file that is opened and designed in Xcode’s Interface Builder.• It provides a visual transition to move from one View to another while visualizing the coding Controllers and Controls.• It is a workflow of the iPad application.• The Application must be iOS 5 compliant.
    6. 6. Storyboards – File type• The Storyboard file is a CocoaTouch XIB (Apple XML) file type for designing in Interface Builder
    7. 7. The Storyboard file in Xcode
    8. 8. Storyboards -- segue• The segue manages the transitions between the scenes and passes data with a “sender”.
    9. 9. Storyboards -- dock• The dock is used to define outlets and actions between the view controller and views.
    10. 10. Storyboards -- scene• The iPad can have multiple scenes appear at once, but the scene is similar to a View.
    11. 11. Running a sample showing navigation
    12. 12. Storyboards – the object• Storyboards are also a UIStoryboard object that encapsulates the storyborad resource file.• http://developer.apple.com/library/ios/#doc umentation/UIKit/Reference/UIStoryboard_C lass/Reference/Reference.html#//apple_ref/ doc/uid/TP40010909-CH1- DontLinkElementID_1
    13. 13. Storyboards – a collection ofcontrollers• Storyboards holds a set of view controllers.• http://developer.apple.com/library/ios/#feat uredarticles/ViewControllerPGforiPhoneOS/U singViewControllersinYourApplication/UsingV iewControllersinYourApplication.html#//appl e_ref/doc/uid/TP40007457-CH6-SW1
    14. 14. Storyboards – a collection ofcontrollers• Storyboards holds a set of view controllers.
    15. 15. Storyboards – A few more notes• I like to think of Storyboard as a visual workflow, that is stored in a storyboard file as a collection of UIKit components, that communicate to the project’s source.• This workflow will follow the Architecture of a normal UIKit application.• UIKit Architecture http://developer.apple.com/library/ios/#DOCU MENTATION/iPhone/Conceptual/iPhoneOSProgr ammingGuide/AppArchitecture/AppArchitecture .html
    16. 16. Storyboards – A few more notes
    17. 17. Storyboards – A few more notesAn Application will be made up of many UIKit components, like UIApplication, UIWindows and various Controllers.• Storyborads will extend the Controllers, and conatin a collection Views that the code may work with through its flow.• UIKit has many framework pieces http://developer.apple.com/library/ios/#Doc umentation/UIKit/Reference/UIKit_Framewo rk/_index.html
    18. 18. Storyboards – A few more notes
    19. 19. WALKINGTHROUGH ACLASSICSAMPLE
    20. 20. Storyboards Start• Apple has created a good example called “Your Second iOS App” found at https://developer.apple.com/library/ios/#doc umentation/iPhone/Conceptual/SecondiOSA ppTutorial/Introduction/Introduction.html#// apple_ref/doc/uid/TP40011318-CH1-SW1
    21. 21. We will start with a Master-DetailProject in Xcode
    22. 22. Master-Detail• A master-detail interface displays a master list and the details for the currently selected item. Like a table view.• http://en.wikipedia.org/wiki/Master– detail_interface
    23. 23. Xcode overview• https://developer.apple.com/library/ios/#doc umentation/ToolsLanguages/Conceptual/Xco de4UserGuide/000-About_Xcode/about.html
    24. 24. About Xcode
    25. 25. Create a Storyboard Master-Detailproject
    26. 26. It has an iPad and iPhone Storyboardin Universal
    27. 27. Running the blank template alreadyhas something …
    28. 28. WHAT WAS JUST BUILT?
    29. 29. Looking at some of the files• All iOS projects will have a group of files that will be similar, for example, an AppDelegate, a main function, a .plist, and if a UIKit, a Main Controller, and Main View.• Big Note, since I am working with both iPhone and iPad storyboards, I will start with the iPhone and copy it to the iPad.
    30. 30. Similar files
    31. 31. The plist (Property List)• All iOS projects have a .plist, usually named after the project, that conains icons, gifs, button graphics, global names and settings for the file, etc.• This is an XML file but viewed as a Property List which is basically a name-value pair of global properties.• In game programming, there will likely be many plists that contain many, many references to the stored png or gif files.• Program icons are also referenced here.
    32. 32. The plist , a reference• A reference can be found at https://developer.apple.com/library/mac/#d ocumentation/Cocoa/Conceptual/PropertyLis ts/QuickStartPlist/QuickStartPlist.html
    33. 33. In our example…
    34. 34. The main function• All C apps, Objective-C apps, C++ apps, and Console C# programs start with a “main” function.• In many cases in Objective-C, it will just call the AppDelegate of the project.
    35. 35. Our main function
    36. 36. The AppDelegate Class• The AppDelegate is the class for startup and shutdown responsibilities.• It will normally have functions defined like “FinishLaunching” to start the initial View Controller and before shutting down, potentially save state information.• It is normally derived from the UIKit’sUIApplicationDelegate.
    37. 37. The UIApplicationDelegate• See https://developer.apple.com/library/ios/#docu mentation/UIKit/Reference/UIApplicationDelega te_Protocol/Reference/Reference.html• Our program deriving the class in the header:
    38. 38. Our AppDelegate• Notice the “didFinishLaunchingWithOptions” function launching the Controllers.
    39. 39. The Controllers• All iOS applications are based on the Model- View-Controller design pattern.• All will also likely be based on the UiKit windowing framework.• Since we started with a Master-Detail project, there will be a Master Controller derived from UITableViewController and a Detail Controller derived from UIViewController. These are tables calling their views.
    40. 40. Our Controllers• Here they are:
    41. 41. Our Controllers in the storyboard
    42. 42. A few words about MVC• The Model-View-Controller (MVC):• http://en.wikipedia.org/wiki/Model–view– controller
    43. 43. A few words about UIKit.h• UIKit is the framework for user interfaces in iOS.• http://developer.apple.com/library/ios/#docum entation/uikit/reference/UIKit_Framework/_ind ex.html#//apple_ref/doc/uid/TP40006955
    44. 44. Notice the Quick Help
    45. 45. LET’S WORK ON THEPROGRAM
    46. 46. First, we will add the modelBirdSightingFile->New File …
    47. 47. Add BirdSighting• Select• A header, BirdSighting.h, and source file, BirdSighting.m is created:
    48. 48. Add some fields to BirdSighting• Add some properties, which are fields or variables, and an init function to BirdSighting.h.• This will error for now because we declared the properties and function, but we haven’t defined them with initial values in the .m source.
    49. 49. BirdSighting fields• These fields will be the Bird’s name, location of sighting and date seen.
    50. 50. A note about the jump bar• We can jump to files and functions and properties within the files by using the navigation jump bar
    51. 51. We will define the properties andfunctions
    52. 52. Learning Objective-C• Objective-C, is based on the C language, and it made sense to me when I thought of it as wrappers, to objectify, the C language.
    53. 53. @synthesize• We used @synthesize to tell the compiler to create the accessor methods, i.e. getters and setters.
    54. 54. Now define the Data Controller• We have the getters/setters which is the model, now define the Controller classes.• We will start with “BirdDataSightingController” which will be the data controller for loading, saving and accessing the data, which is BirdSighting.• The BirdSighting is the name, date and location of the Bird.• BirdDataSightingController will add, load and save an Array List of this data, so we have array model containing a model with name, date and location.
    55. 55. Create the Data Controller• We will create a BirdDataSightingController just like the BirdSighting class.
    56. 56. Now declare the Data ControllerHeader
    57. 57. Data Controller• We will have a current count and index to keep track where we are in the array.• The Array will be NSMutableArray, meaning modifiable.
    58. 58. BirdSightingDataController.m
    59. 59. BirdSightingDataController.mcon’t
    60. 60. Check the identity ofBirdMasterViewController
    61. 61. Deviations and Disclaimer• I have a referenced an Apple example, Second iOS App Tutorial and am walking through a similar solution.• Their example goes into exhaustive detail, while my example is not as detailed.• My coding style is to get the storyboard mapped out first, and then add the details so several deviations may exist from their example.
    62. 62. ADDING A TABLE VIEWCONTROLLER
    63. 63. Introduction• UIViewController is one of the referenced classes that controllers will be derived from.• Like most MVC frameworks, there are predefined methods that make up the lifecycle of the class.• Some of these methods that you should understand are viewDidLoad () and viewDidUnload( ) to start. These will be defined regardless of the Controller.• There are many types of controllers that are prepakaged in UIKit, like UITableViewController.
    64. 64. Introduction references• http://developer.apple.com/library/ios/#doc umentation/uikit/reference/UIViewController _Class/Reference/Reference.html• http://developer.apple.com/library/ios/#feat uredarticles/ViewControllerPGforiPhoneOS/I ntroduction/Introduction.html#//apple_ref/d oc/uid/TP40007457
    65. 65. Adding the View• As mentioned in MVC, all Controllers have Views.• The View does not have to be code.• As in many iOS products, the View can be a XIB, iOS XML, file that defines it.• In Storyboards, the View is likely to be Controller Scene in the Storyboard file.
    66. 66. Adding AddSightingViewController• Other examples may add this later, as file are filled in piecemeal.• I simply like to create the files first and edit the sources as a whole.
    67. 67. AddSightingViewController.h stub• Now we see that the header is derived ffromUITableViewController, no problem.
    68. 68. AddSightingViewController.m stub• Now we see that the source has many pre- populated methods to follow the lifecyle of the UITableViewController. Here’s just a few:
    69. 69. Adding the Object• The Controller Scene will likely start from the Object Library:
    70. 70. Adding the Table View Controller• We will add a UITableViewController and Embed a Navigation Controller with it:
    71. 71. Setting the UITableViewController• We will set the UITableViewController to the custom class AddSightingViewController, because we are creating this Scene for this Controller.
    72. 72. Changes the name
    73. 73. Setting the Table View Attributes toStatic Cells• Next, we will set the Table View to Static Cells instead of Dynamic Cells to basically hard code the view layout.• Apple has large references on changing the Table View like places at http://developer.apple.com/library/mac/#documenta tion/cocoa/Conceptual/TableView/PopulatingCellTabl es/PopulatingCellTables.html#//apple_ref/doc/uid/10 000026i-CH5-SW1
    74. 74. Select the Table View in hierarchy, andset to Static Cells in the attributes.
    75. 75. Delete one of the Table View Cells, weonly need 2
    76. 76. Add labels and text fields for “BirdName” and “Location”….
    77. 77. Add Cancel and Done Bar ButtonItems….
    78. 78. Create Outlets to the Text Fields toallow communication with theController (using control key toControl-Drag and Editor Assistant)
    79. 79. More on Outlets• Outlets can be defined through Xcode’s Interface Builder.• They are defined with the type qualifier IBOutlet. This will give a pointer to the object to allow the Controller to communicate to it.• See Cocoa Fundamentals Guide https://developer.apple.com/library/mac/#docu mentation/Cocoa/Conceptual/CocoaFundament als/CommunicatingWithObjects/Communicate WithObjects.html
    80. 80. Defining the Outlet in InterfaceBuilder with birdNameInput andlocationInput.
    81. 81. Code is generated in the Controllerwith IBOutlet pointers• The Controller can now send text to the text field via this IBOutlet pointer.
    82. 82. It also added some code into theAddSightViewController.m
    83. 83. Now we add Actions that will allowthe Buttons to communicate to theController
    84. 84. More on Actions• Outlets will allow Controllers to talk to the View, Actions will allow the View to talk to the Controller.• The Action sends a message to a target, usually through a “sender” and the target will implement a responder.• See Cocoa Fundamentals Guide https://developer.apple.com/library/mac/#docu mentation/Cocoa/Conceptual/CocoaFundament als/CommunicatingWithObjects/Communicate WithObjects.html#//apple_ref/doc/uid/TP40002 974-CH7-SW15
    85. 85. Declare the cancel Action
    86. 86. Declare the done Action
    87. 87. Add delegates in the Table View forthe text fields• Control-Drag from the Bird Name and Location text fields to the dock scene’s proxy, yellow orb.• Select outlet->delegate on both.
    88. 88. Add delegates in the Table View forthe text fields
    89. 89. Don’t forget, the storyboard file is XIBand we can check to see if thedelegate was added to the text field.Add delegates in the Table View forthe text fields
    90. 90. What we have
    91. 91. Part of the XIB
    92. 92. Add the protocol methods delegatesin the Table View for the text fields• Control-Drag from the Bird Name and Location text fields to the dock scene’s proxy, yellow orb.• Select outlet->delegate on both.
    93. 93. Add delegate declarations in theheader
    94. 94. After delegate declarations inAddSightingViewController.h• We will add AddSightingViewControllerDelegate code:
    95. 95. Add Table view delegate definitions inAddSightingViewController.m• We will add Table view delegate code to capture user input from Add Sighting View in the Storyboard:
    96. 96. Pragma marking ..• The “pragma mark” helps us locate areas with the Navigation Toolbar for the editor:
    97. 97. Now that we have the AddSightingViewControllerdefined, we need to add it to theBirdsMasterViewController to get called from theApplication…this will be our connection….
    98. 98. We will add the Segue through an AddButton on the Master Controller.
    99. 99. Adding the segue with a Control-Dragfrom the (+) to the NavigationController
    100. 100. The modal segue• A modal segue will present the destination of the view controller, in this instance the Add Sighting View Controller.• http://developer.apple.com/library/ios/#featuredarticles/ViewCon trollerPGforiPhoneOS/AboutViewControllers/AboutViewController s.html• We will also assign the modal segue an identifier to be called referenced by in executing.• Note: There should be no compile errors yet.
    101. 101. We will start adding theAddSightingViewController code intothe BirdMasterViewController thatcalls it.• Start by declaring the imports and interface in BirdMasterViewController.m :
    102. 102. Next, add the piece inBirdMasterViewController’sprepareForSegue tocall the Views based on segue name.
    103. 103. Next, add the piece inBirdMasterViewController’s that cancall the Cancel and Done buttons.
    104. 104. Compiler errors may start to occur…• There may be compiler errors in the Main Controller now, especially since the dataController hasn’t been defined in the Main Controller’s header file.• We need import BirdSightingDataController into BirdsMasterViewController.h.• And the dataController in the same file.
    105. 105. DETAILS VIEWSCONTROLLER
    106. 106. BirdsDetailViewController• The BirdsDetailViewController will display the fields of the BirdSightings model that have already been entered.• These fields are bird name, location and date.• This will be a UITableViewController that will display the bird name, location and date fields, set as labels, that are selected from the master scene to display.
    107. 107. BirdsDetailViewController.h• I added the bird name, location and date in the header file, sometimes I do this ahead of time to prepare the labels in the scene.
    108. 108. Designing the Scene• We are going to delete Birds Detail View Controller and replace it with a generic Table View Controller.
    109. 109. Add the Custom Class name• Name is BirdsDetailViewController
    110. 110. Adding the segue push from theMaster Scene• We can delete the extra Navigation Controller that had a segue to BirdsDetailViewController because we will be coming from the Master Scene.
    111. 111. Adding the segue push from theMaster Scene• We will Control-Drag from the table cell this time instead of the Add button with a push segue.
    112. 112. Adding the segue name• Set the segue name to ShowSightingDetails
    113. 113. We should be here now
    114. 114. Reviewing the segue name• We can open the storyboard file up as source, XIB, or XML, and see that the segues were named correctly.
    115. 115. Starting on the Table View cells• Set the Content Attribute to Static Cells.
    116. 116. Adding the Labels• Add the labels with from the Object Utilities and label them Bird Name, Location and Date.
    117. 117. Adding the Labels• Also add the labels to display the bird name, location and date on the left of the description labels, Duplicate editing may help…
    118. 118. Adding the label names• Control-Drag from the Controllers Object Dock to each of the display labels.
    119. 119. Adding the label names• Add the appropriate label name, birdNameLabel, locationLabel, and dateLabel. They should match the header.
    120. 120. Adding the label names• They can be checked by right clicking on the Label
    121. 121. Adding the label names• You can also see the link in BirdsDetailViewController.h, clinking on the reference will take you to the storyboard.
    122. 122. Adding code toBirdsDetailViewController.m• Add @sythesize to values and create a configView to format the data.
    123. 123. RECAP SOME OFTHE STORYBOARD
    124. 124. If things worked well…The We have allthe major pieces defined.
    125. 125. More detail …
    126. 126. More detail …
    127. 127. This is the MainStoryboard_iPhone• For simplicity of this first time, we are going to just re-use the same storyboard for iPad.• We are going to open the stroyboard’s as source and copy the iPhone one into the iPad one.
    128. 128. This is the MainStoryboard_iPhone• For simplicity of this first time, we are going to just re-use the same storyboard for iPad.• We are going to open the stroyboard’s as source and copy the iPhone one into the iPad one. A Text editor, like TextWrangler might be more helpful in keeping the format of the XIB.• We will address the SplitView issue later.
    129. 129. Now mainStoryboard_iPad• After copying the iPhone storyboard’s source into the iPad storyboard, the targetRuntime has to be changed from iPhone, iOS.CocoaTouch, to iPad, iOS.CocoaTouc.iPad.
    130. 130. In Interface Builder• IB now looks the same for the iPad :
    131. 131. CONNECTING ALLTHE PIECES
    132. 132. We have all the major pieces defined.• Up until this point, all of the Storyboard pieces and classes have been created.• What remains is to start from the beginning and ensure all the pieces are calling each other correctly through their functions.
    133. 133. We always start with the main.m• The main function always get called first, and it will call the AppDelegate.• The BirdsAppDelegate.h will declare a UiWindow and be derived from a UiResponder.
    134. 134. BirdsAppDelegate.m will call …• Besides stubbed out functions, all the work will be done in didFinishLaunchingWithOptions.• This function will start with the first controller as the BirdsMasterViewController and passing it the model as BirdsSightingDataController.• The BirdsSightingDataController will contain a masterBirdSightingList.• The masterBirdSightingList is an array list of BirdSighting objects.• The BirdSighting object just contains methods and names for Bird Name, Location and Date.
    135. 135. BirdsAppDelegate.m
    136. 136. BirdsMasterViewController.m will call• This View will display the array list of BirdSightings.• If the Add button is pushed, then the AddSightingViewController is called through a delegate to add a new record.• If the item in the list is selected, the BirdsDetailViewController is displayed with that records BirdSighting information of bird name, location and date.
    137. 137. BirdsMasterViewController.h• The Master View Header will declare the two controllers that is will call:
    138. 138. BirdsMasterViewController.m• The prepareForSegue function is very important, and its purpose is to execute the appropriate Controller based on the segue’s name.
    139. 139. Sent to a Controller ..• If (+), the ShowAddSightingView is referenced to call the AddSightingView Controller.• If a line item is pressed, the ShowSightingDetails is referenced to call the BirdsDetailViewController.• A reference will also be set inside BirdsDetailViewController to which row was selected.
    140. 140. If a detail selected, thenBirdsDetailViewController• This controller will just get the data from row, and filled in the fields that are outlets to update the labels in the Table View:
    141. 141. If (+) selected, thenAddSightingsViewController• This controller will use outlets and delegates to fill the list from the text fields that are filled out.• Then based on the next action, cancel or done, it will complete the actions, set as action types, and return to the Master Controller.
    142. 142. Add delegate declarations inAddSightingViewController.h• We will add AddSightingViewControllerDelegate code:
    143. 143. Add Table view delegate definitions inAddSightingViewController.m• We will add Table view delegate code to capture user input from Add Sighting View in the Storyboard:
    144. 144. RUNNING THESAMPLE
    145. 145. Click on to Run and ensure it is set toiPad
    146. 146. Master Controller
    147. 147. Hit Add (+)• Add (+) goes to AddSightingViewController
    148. 148. Hit Done, adds the record for now, aBirdSighting model.
    149. 149. Select the line takes you to theBirdsDetailViewController. Click BirdSightings to return to the MainController.
    150. 150. Looking at it on the iPhone
    151. 151. ADDING A A SPLITVIEWCONTROLLERFOR IPAD
    152. 152. The Split View Controller ..• The Split View Controller manages two panes of information.http://developer.apple.com/library/ios/#docu mentation/WindowsViews/Conceptual/View ControllerCatalog/Chapters/SplitViewControll ers.html
    153. 153. The Split View Controller ..• They can be created programmatically.
    154. 154. For the iPadstroyboard, we will add aSplitViewController
    155. 155. Delete the default attaching views
    156. 156. Set as Initial View and LandscapeOrientation
    157. 157. Setting the Split Controller ..• The relationship has to be set from the SplitView Controller to the Master Controller and Detail Controller as it will now branch off of it from the beginning.
    158. 158. Delete the Segue from MasterController and Detail View• Delete the segue from Master Controller to Detail View.
    159. 159. Set the relationships from the SplitView Controller to the MasterController and Detail View withControl-Drag
    160. 160. Set the relationships from the SplitView Controller to the MasterController and Detail View withControl-Drag
    161. 161. Now we have…
    162. 162. Change the BirdsAppDelegate.m
    163. 163. We will change theBirdsDetailViewController since it willbe in the background as a modal to aUISplitViewControllerDelegate
    164. 164. UiSplitViewControllerDelegate• This class is used to manage the changes to the visible view. The detail view is always visible.• http://developer.apple.com/library/ios/#DOC UMENTATION/UIKit/Reference/UISplitViewCo ntrollerDelegate_protocol/Reference/Referen ce.html
    165. 165. BirdsDetailViewController.m• We will have to make changes to accommodate the Master Button as a popover Controller to manage the Detail Scene.
    166. 166. BirdsDetailViewController.m• And accommodate hiding the Master Controller when the detail is selected…
    167. 167. BirdsMasterViewController.h• Add the detailViewController to be referenced
    168. 168. BirdsMasterViewController.m• This is be used as the detailViewController that will be always displayed in the background and changed when a different row is selected in its viewDidLoad
    169. 169. When Running• And the Master button is selected, the Master Controller is used as a popup.
    170. 170. When Running• When the detailed row is selected, it displays the DetailViewContoller, as before, but now keeps it resident with the detailViewController variable.
    171. 171. When Running• When the (+) is pushed, it will still call the prepareForSegue with the ShowAddSightingView and work as before.
    172. 172. CONCLUSION

    ×