SlideShare a Scribd company logo
IOS Story boards
Presented by
Muhammad Nabeel Arif
What is Storyboard
 Storyboarding is an exciting new
feature in iOS 5 that will save you a lot
of time building user interfaces for
your apps.
Advantages Of Storyboards
 With a storyboard you have a better
conceptual overview of all the screens in
your app and the connections between
them.
 The storyboard describes the transitions
between the various screens.
 Storyboards make working with table
views a lot easier with the new prototype
cells and static cells features.
 Can also use .xibs if needed with
storyboards.
Disadvantages of Storyboards
 You also need a big
monitor, especially when you write
iPad apps!
 it is only available in iOS 5 onward
 Like IB, not very friendly with other
display engines and toolkits
 Merges can be very difficult if not
impossible if there are conflicts.
Creating Storyboard Project
Fire up Xcode and create a new project.
 Product Name: Ratings
 Company Identifier: the identifier that you
use for your apps, in reverse domain
notation
 Class Prefix: leave this empty
 Device Family: iPhone
 Use Storyboard: check this
 Use Automatic Reference Counting:
check this
Creating Storyboard Project
IOS Storyboards
IOS Storyboards
In info.plist file, storyboard apps use the key
UIMainStoryboardFile, or “Main storyboard file base name”, to
specify the name of the storyboard that must be loaded when the
app starts.
Incorporate Storyboard in
Existing app
 Open Existing Project, File >
New > File > User Interface
>Storyboard
 UIStoryboard *storybrd =
[UIStoryboard
storyboardWithName:@"LTDSt
oryboardIPhone" bundle:nil];

AllProspectsNavigationControll
er *navpd = [storybrd
instantiateViewControllerWithId
entifier:@"AllProspectsNavigati
onController"];
 navpd.tabBarItem.title =
@"Prospects";
Storyboard Segues
 A segue is a transition from one view to
another.
 E.g Select the + button and ctrl-drag to the
new Navigation Controller:
Life Cycle of a Segue
 The destination controller is created and initialized.
 The segue object is created and its
initWithIdentifier:source:destination: method is called.
The identifier is the unique string you provided for the
segue in Interface Builder, and the two other
parameters represent the two controller objects in the
transition.
 The source view controller’s prepareForSegue:sender:
method is called. See “Configuring the Destination
Controller When a Segue is Triggered.”
 The segue object’s perform method is called. This
method performs a transition to bring the destination
view controller on-screen.
 The reference to the segue object is released, causing
it to be deallocated.
 Release the mouse button and a small
popup menu shows up:
Manually initiating Segue
 If you want to perform a
transition on some
condition, you can fire a
segue manually from
code.
 [self
performSegueWithIdent
ifier:
@"loadMyDetailView"
sender:self];
Implementing a Custom Segue
 To implement a custom segue, you
subclass UIStoryboardSegue and
implement the two methods described
earlier:
◦ If you override the
initWithIdentifier:source:destination: method,
call the superclass’s implementation, then
initialize your subclass.
◦ Your perform method must make whatever
view controller calls are necessary to perform
the transition you want. Typically, you use
any of the standard ways to display a new
view controller, but you can embellish this
design with animations and other effects.
Unwinding Storyboard Segues
 Unwind segues can
allow transitioning to
existing instances of
scenes in a
storyboard
 You must
have, higher up in
the view controller
hierarchy, a method
that is:
◦ Marked as IBAction
◦ Takes one parameter
that is a
UIStoryboardSegue*
Prototype cells
 Prototype cells are one of the cool
advantages that storyboards offer over
regular nibs.
Prototype Cells
 That looks a lot simpler! The only thing
you need to do to get a new cell is:
 UITableViewCell *cell = [tableView
dequeueReusableCellWithIdentifier:@
"PlayerCell"];
Designing Our Own Prototype
Cells
 Using a standard cell style is OK for many apps, but I want to
add an image on the right-hand side of the cell that shows the
player’s rating (in stars). Having an image view in that spot is
not supported by the standard cell styles, so we’ll have to
make a custom design.
Designing Our Own Prototype
Cells
Static Cells
 Static table views
are ideal in
situations where a
pre-determined
number of items
need to be
displayed to the
user. The fact that
static table views
do not need a
data source
makes them fast
and easy to
implement.
Passing Data
 Segues are fired automatically on click
of buttons etc. But you can pass data
to destination ViewControllers
 - (void)prepareForSegue:(UIStoryboardSegue
*)segue sender:(id)sender {
◦ if ([[segue identifier]
isEqualToString:@"ShowNewVC"]) {
 NextViewController *nextVC = (NextViewController *)[segue
destinationViewController];
 nextVC.someProperty = self.myProperty;
◦ }
 }
 http://bit.ly/oI2GGW
 http://bit.ly/qIiGMb
 http://bit.ly/101z7JP
 http://bit.ly/SSiz8h
 http://bit.ly/11L9gFI
IOS Storyboards

More Related Content

PDF
Refreshing Your App in iOS 7
PDF
iOS storyboard
PPTX
Mule java part-2
PPTX
iOS app dev Training - Session1
PPTX
Responsive Design with Axure 7.0’s Adaptive Views
PDF
Storyboard
PPT
Android Ui
PDF
Unity Google VR Cardboard Deployment on iOS and Android
Refreshing Your App in iOS 7
iOS storyboard
Mule java part-2
iOS app dev Training - Session1
Responsive Design with Axure 7.0’s Adaptive Views
Storyboard
Android Ui
Unity Google VR Cardboard Deployment on iOS and Android

What's hot (20)

PPTX
Tools and practices for rapid application development
PDF
Android Screen Containers & Layouts
PDF
Andriod dev toolbox part 2
DOCX
Android xml-based layouts-chapter5
PDF
What I’ve learned when developing BlockAlertViews
PPTX
2. 엔티티 매핑(entity mapping) 2 2 엔티티매핑 2-2-4. 식별자 자동 생성(@generated-value) part2
PDF
Android ui tips & tricks
PDF
Feedback using Angularjs + Typescript at Serenytics
PPTX
Head first iOS programming
PDF
Introduction to fragments in android
KEY
ICS ホットトピック
PPS
Patterns in Eclipse
PDF
Android development session 4 - Fragments
DOC
Day 4: Activity lifecycle
PPT
Android UI
PDF
Laboratorio: Desarrollo para Smart Devices
PDF
[Individual presentation] android fragment
PDF
Laboratorio: Desarrollo para Smart Devices (continuación)
PDF
Android design and Custom views
PDF
Mobile Programming - 7 Side Effects, Effect Handlers, and Simple Animations
Tools and practices for rapid application development
Android Screen Containers & Layouts
Andriod dev toolbox part 2
Android xml-based layouts-chapter5
What I’ve learned when developing BlockAlertViews
2. 엔티티 매핑(entity mapping) 2 2 엔티티매핑 2-2-4. 식별자 자동 생성(@generated-value) part2
Android ui tips & tricks
Feedback using Angularjs + Typescript at Serenytics
Head first iOS programming
Introduction to fragments in android
ICS ホットトピック
Patterns in Eclipse
Android development session 4 - Fragments
Day 4: Activity lifecycle
Android UI
Laboratorio: Desarrollo para Smart Devices
[Individual presentation] android fragment
Laboratorio: Desarrollo para Smart Devices (continuación)
Android design and Custom views
Mobile Programming - 7 Side Effects, Effect Handlers, and Simple Animations
Ad

Similar to IOS Storyboards (20)

PDF
Introduction of Xcode
PPTX
New to native? Getting Started With iOS Development
PPTX
iOS Development: What's New
PPTX
Android and IOS UI Development (Android 5.0 and iOS 9.0)
PPTX
iOS Development (Part 3) - Additional GUI Components
PPTX
Building your first iOS app using Xamarin
PPTX
Swift Tableview iOS App Development
PDF
What's new in android: jetpack compose 2024
PDF
IOS APPs Revision
PDF
Swift
PDF
Introduction to Andriod Studio Lecture note: Android Development Lecture 1.pdf
PPTX
D2 OPEN SEMINAR - WWDC 핫 이슈
PPTX
Code camp 2011 Getting Started with IOS, Una Daly
PPTX
Unity - Essentials of Programming in Unity
PDF
A tour through Swift attributes
PDF
MOPCON 2014 - Best software architecture in app development
PDF
Getting started with Verold and Three.js
PPT
Synapse india mobile apps update
PPTX
iOS Development (Part 2)
Introduction of Xcode
New to native? Getting Started With iOS Development
iOS Development: What's New
Android and IOS UI Development (Android 5.0 and iOS 9.0)
iOS Development (Part 3) - Additional GUI Components
Building your first iOS app using Xamarin
Swift Tableview iOS App Development
What's new in android: jetpack compose 2024
IOS APPs Revision
Swift
Introduction to Andriod Studio Lecture note: Android Development Lecture 1.pdf
D2 OPEN SEMINAR - WWDC 핫 이슈
Code camp 2011 Getting Started with IOS, Una Daly
Unity - Essentials of Programming in Unity
A tour through Swift attributes
MOPCON 2014 - Best software architecture in app development
Getting started with Verold and Three.js
Synapse india mobile apps update
iOS Development (Part 2)
Ad

Recently uploaded (20)

PDF
NewMind AI Weekly Chronicles - August'25 Week I
PDF
solutions_manual_-_materials___processing_in_manufacturing__demargo_.pdf
PDF
CIFDAQ's Market Wrap: Ethereum Leads, Bitcoin Lags, Institutions Shift
PDF
SAP855240_ALP - Defining the Global Template PUBLIC.pdf
PDF
Chapter 2 Digital Image Fundamentals.pdf
PPTX
breach-and-attack-simulation-cybersecurity-india-chennai-defenderrabbit-2025....
PDF
DevOps & Developer Experience Summer BBQ
PPTX
Comunidade Salesforce São Paulo - Desmistificando o Omnistudio (Vlocity)
PDF
Smarter Business Operations Powered by IoT Remote Monitoring
PPTX
Understanding_Digital_Forensics_Presentation.pptx
PDF
Advanced IT Governance
PDF
Newfamily of error-correcting codes based on genetic algorithms
PPT
“AI and Expert System Decision Support & Business Intelligence Systems”
PDF
HCSP-Presales-Campus Network Planning and Design V1.0 Training Material-Witho...
PDF
Modernizing your data center with Dell and AMD
PPTX
Big Data Technologies - Introduction.pptx
PPTX
Telecom Fraud Prevention Guide | Hyperlink InfoSystem
PPTX
Cloud computing and distributed systems.
PPTX
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
PDF
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
NewMind AI Weekly Chronicles - August'25 Week I
solutions_manual_-_materials___processing_in_manufacturing__demargo_.pdf
CIFDAQ's Market Wrap: Ethereum Leads, Bitcoin Lags, Institutions Shift
SAP855240_ALP - Defining the Global Template PUBLIC.pdf
Chapter 2 Digital Image Fundamentals.pdf
breach-and-attack-simulation-cybersecurity-india-chennai-defenderrabbit-2025....
DevOps & Developer Experience Summer BBQ
Comunidade Salesforce São Paulo - Desmistificando o Omnistudio (Vlocity)
Smarter Business Operations Powered by IoT Remote Monitoring
Understanding_Digital_Forensics_Presentation.pptx
Advanced IT Governance
Newfamily of error-correcting codes based on genetic algorithms
“AI and Expert System Decision Support & Business Intelligence Systems”
HCSP-Presales-Campus Network Planning and Design V1.0 Training Material-Witho...
Modernizing your data center with Dell and AMD
Big Data Technologies - Introduction.pptx
Telecom Fraud Prevention Guide | Hyperlink InfoSystem
Cloud computing and distributed systems.
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
How UI/UX Design Impacts User Retention in Mobile Apps.pdf

IOS Storyboards

  • 1. IOS Story boards Presented by Muhammad Nabeel Arif
  • 2. What is Storyboard  Storyboarding is an exciting new feature in iOS 5 that will save you a lot of time building user interfaces for your apps.
  • 3. Advantages Of Storyboards  With a storyboard you have a better conceptual overview of all the screens in your app and the connections between them.  The storyboard describes the transitions between the various screens.  Storyboards make working with table views a lot easier with the new prototype cells and static cells features.  Can also use .xibs if needed with storyboards.
  • 4. Disadvantages of Storyboards  You also need a big monitor, especially when you write iPad apps!  it is only available in iOS 5 onward  Like IB, not very friendly with other display engines and toolkits  Merges can be very difficult if not impossible if there are conflicts.
  • 5. Creating Storyboard Project Fire up Xcode and create a new project.  Product Name: Ratings  Company Identifier: the identifier that you use for your apps, in reverse domain notation  Class Prefix: leave this empty  Device Family: iPhone  Use Storyboard: check this  Use Automatic Reference Counting: check this
  • 9. In info.plist file, storyboard apps use the key UIMainStoryboardFile, or “Main storyboard file base name”, to specify the name of the storyboard that must be loaded when the app starts.
  • 10. Incorporate Storyboard in Existing app  Open Existing Project, File > New > File > User Interface >Storyboard  UIStoryboard *storybrd = [UIStoryboard storyboardWithName:@"LTDSt oryboardIPhone" bundle:nil];  AllProspectsNavigationControll er *navpd = [storybrd instantiateViewControllerWithId entifier:@"AllProspectsNavigati onController"];  navpd.tabBarItem.title = @"Prospects";
  • 11. Storyboard Segues  A segue is a transition from one view to another.  E.g Select the + button and ctrl-drag to the new Navigation Controller:
  • 12. Life Cycle of a Segue  The destination controller is created and initialized.  The segue object is created and its initWithIdentifier:source:destination: method is called. The identifier is the unique string you provided for the segue in Interface Builder, and the two other parameters represent the two controller objects in the transition.  The source view controller’s prepareForSegue:sender: method is called. See “Configuring the Destination Controller When a Segue is Triggered.”  The segue object’s perform method is called. This method performs a transition to bring the destination view controller on-screen.  The reference to the segue object is released, causing it to be deallocated.
  • 13.  Release the mouse button and a small popup menu shows up:
  • 14. Manually initiating Segue  If you want to perform a transition on some condition, you can fire a segue manually from code.  [self performSegueWithIdent ifier: @"loadMyDetailView" sender:self];
  • 15. Implementing a Custom Segue  To implement a custom segue, you subclass UIStoryboardSegue and implement the two methods described earlier: ◦ If you override the initWithIdentifier:source:destination: method, call the superclass’s implementation, then initialize your subclass. ◦ Your perform method must make whatever view controller calls are necessary to perform the transition you want. Typically, you use any of the standard ways to display a new view controller, but you can embellish this design with animations and other effects.
  • 16. Unwinding Storyboard Segues  Unwind segues can allow transitioning to existing instances of scenes in a storyboard  You must have, higher up in the view controller hierarchy, a method that is: ◦ Marked as IBAction ◦ Takes one parameter that is a UIStoryboardSegue*
  • 17. Prototype cells  Prototype cells are one of the cool advantages that storyboards offer over regular nibs.
  • 18. Prototype Cells  That looks a lot simpler! The only thing you need to do to get a new cell is:  UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@ "PlayerCell"];
  • 19. Designing Our Own Prototype Cells  Using a standard cell style is OK for many apps, but I want to add an image on the right-hand side of the cell that shows the player’s rating (in stars). Having an image view in that spot is not supported by the standard cell styles, so we’ll have to make a custom design.
  • 20. Designing Our Own Prototype Cells
  • 21. Static Cells  Static table views are ideal in situations where a pre-determined number of items need to be displayed to the user. The fact that static table views do not need a data source makes them fast and easy to implement.
  • 22. Passing Data  Segues are fired automatically on click of buttons etc. But you can pass data to destination ViewControllers  - (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender { ◦ if ([[segue identifier] isEqualToString:@"ShowNewVC"]) {  NextViewController *nextVC = (NextViewController *)[segue destinationViewController];  nextVC.someProperty = self.myProperty; ◦ }  }
  • 23.  http://bit.ly/oI2GGW  http://bit.ly/qIiGMb  http://bit.ly/101z7JP  http://bit.ly/SSiz8h  http://bit.ly/11L9gFI