What has Changed in the Fourth Edition?
Necessary Hardware and Software
Getting the view controller on the screen
Creating and populating an array
Subclassing an Objective-C Class
More on NSArray and NSMutableArray
Exceptions and Unrecognized Selectors
Silver Challenge: Another Initializer
For the More Curious: Class Names
For the More Curious: #import and @import
Pointer Variables and Object Ownership
Custom accessors with properties
For the More Curious: Property Synthesis
For the More Curious: Autorelease Pool and ARC History
4. Views and the View Hierarchy
Using the developer documentation
Bronze Challenge: Draw an Image
For the More Curious: Core Graphics
Gold Challenge: Shadows and Gradients
5. Views: Redrawing and UIScrollView
The Run Loop and Redrawing Views
Creating a view programmatically
Setting the root view controller
Creating a view in Interface Builder
Interacting with View Controllers and Their Views
Silver Challenge: Controller Logic
For the More Curious: Key-Value Coding
For the More Curious: Retina Display
Adding the Labels to the Screen
For the More Curious: main() and UIApplication
Silver Challenge: Pinch to Zoom
8. UITableView and UITableViewController
Beginning the Homepwner Application
Subclassing UITableViewController
Implementing data source methods
Creating and retrieving UITableViewCells
Silver Challenge: Constant Rows
Gold Challenge: Customizing the Table
Bronze Challenge: Renaming the Delete Button
Silver Challenge: Preventing Reordering
Gold Challenge: Really Preventing Reordering
An Additional UIViewController
Navigating with UINavigationController
Passing data between view controllers
Appearing and disappearing views
Bronze Challenge: Displaying a Number Pad
Silver Challenge: Dismissing a Number Pad
Gold Challenge: Pushing More View Controllers
Displaying Images and UIImageView
Taking Pictures and UIImagePickerController
Setting the image picker’s sourceType
Setting the image picker’s delegate
Presenting the image picker modally
Bronze Challenge: Editing an Image
Silver Challenge: Removing an Image
Gold Challenge: Camera Overlay
For the More Curious: Navigating Implementation Files
For the More Curious: Recording Video
12. Touch Events and UIResponder
Creating the TouchTracker Application
Bronze Challenge: Saving and Loading
For the More Curious: The Responder Chain
For the More Curious: UIControl
13. UIGestureRecognizer and UIMenuController
UIGestureRecognizer Subclasses
Detecting Taps with UITapGestureRecognizer
UIPanGestureRecognizer and Simultaneous Recognizers
For the More Curious: UIMenuController and UIResponderStandardEditActions
For the More Curious: More on UIGestureRecognizer
Silver Challenge: Mysterious Lines
Gold Challenge: Speed and Size
Projects, Targets, and Build Settings
15. Introduction to Auto Layout
Alignment rectangle and layout attributes
Adding Constraints in Interface Builder
Bronze Challenge: Practice Makes Perfect
Silver Challenge: Universalize Quiz
For the More Curious: Debugging Using the Auto Layout Trace
For the More Curious: Multiple XIB Files
16. Auto Layout: Programmatic Constraints
For the More Curious: NSAutoresizingMaskLayoutConstraint
17. Autorotation, Popover Controllers, and Modal View Controllers
Dismissing modal view controllers
Modal view controller transitions
Bronze Challenge: Another Thread-Safe Singleton
Gold Challenge: Popover Appearance
For the More Curious: Bitmasks
For the More Curious: View Controller Relationships
Presenting-presenter relationships
18. Saving, Loading, and Application States
NSKeyedArchiver and NSKeyedUnarchiver
Application States and Transitions
Writing to the Filesystem with NSData
NSNotificationCenter and Low-Memory Warnings
Model-View-Controller-Store Design Pattern
For the More Curious: Application State Transitions
For the More Curious: Reading and Writing to the Filesystem
For the More Curious: The Application Bundle
19. Subclassing UITableViewCell
Configuring a UITableViewCell subclass’s interface
Exposing the properties of BNRItemCell
Relaying Actions from UITableViewCells
Adding a block to the cell subclass
Presenting the image in a popover controller
Bronze Challenge: Color Coding
For the More Curious: UICollectionView
Content Hugging and Compression Resistance Priorities revisited
Determining the User’s Preferred Text Size
21. Web Services and UIWebView
Starting the Nerdfeed application
NSURL, NSURLRequest, NSURLSession, and NSURLSessionTask
Silver Challenge: More UIWebView
Gold Challenge: Upcoming Courses
For the More Curious: The Request Body
Displaying the Master View Controller in Portrait Mode
NSManagedObject and subclasses
Adding BNRAssetTypes to Homepwner
Trade-offs of Persistence Mechanisms
Bronze Challenge: Assets on the iPad
Silver Challenge: New Asset Types
Gold Challenge: Showing Assets of a Type
Opting In to State Restoration
Restoration Identifiers and Classes
Silver Challenge: Another Application
For the More Curious: Controlling Snapshots
Internationalization Using NSNumberFormat
NSLocalizedString() and Strings Tables
Bronze Challenge: Another Localization
For the More Curious: NSBundle’s Role in Internationalization
For the More Curious: Localizing XIB files without Base Internationalization
Silver Challenge: Improved Quiz
UITableViewControllers in Storyboards