Lists: UI with Two View Controllers That Display Table Cells
Master dual view controller architecture in iOS
This tutorial requires Xcode and assumes basic familiarity with iOS development concepts. Make sure you have sufficient disk space and a stable development environment.
Core Development Components
Dual View Controller Setup
Learn to create and manage multiple view controllers within a single application architecture.
Navigation Controller Integration
Implement navigation flow management between different screens and user interfaces.
UI Element Positioning
Master constraint-based layout design for responsive and professional interfaces.
App Development Timeline
Project Setup
Create new Xcode project with proper configuration settings
File Structure Creation
Generate Swift files for dual view controller architecture
Navigation Implementation
Add navigation controller to manage view transitions
UI Design & Constraints
Build interface elements with proper positioning
Project Configuration Checklist
Ensures proper project identification and organization
Provides visual interface design capabilities
Simplifies project structure for this tutorial
Essential for version control and code management
Focuses on single orientation for cleaner design
File Creation Process
Remove Default Controller
Delete the default ViewController file to start with clean architecture
Create Data Model
Generate Data Model.swift file using Swift File template for data structure
Build View Controllers
Create ListsVC and ListItemsVC using Cocoa Touch Class template with UIViewController subclass
Add Table View Cells
Generate ListTitleTVCell and ListItemTVCell using UITableViewCell subclass for data display
Always set the subclass first before naming your class to avoid having to clean up auto-generated naming suggestions that Xcode appends.
The gray arrow indicates the Storyboard entry point. Without setting 'Is Initial View Controller' on your Navigation Controller, your app will not display any content when launched.
Navigation Controller Setup
Clear Default Interface
Remove the default View Controller from Main.storyboard to prepare for custom navigation
Add Navigation Controller
Drag Navigation Controller from Objects library to establish navigation framework
Replace Root View Controller
Delete prefabricated controller and add custom View Controller with Control-drag connection
Set Entry Point
Enable 'Is Initial View Controller' in Attributes inspector to restore gray arrow indicator
UI Element Hierarchy
When working with teams, image assets and final designs may not be ready during initial development. Building basic functional interfaces allows development to proceed while design work continues.
Constraint Application Process
Embed Related Elements
Group text field and button in a container view for easier constraint management
Apply Individual Constraints
Set specific spacing values for text field (20,15,20,20) and button (20,20,20) with fixed dimensions
Configure Container View
Apply constraints to embedded view with 70-point height and light gray background for visual distinction
Position Table Elements
Set table view to fill remaining space and position label with proper margins
Key Takeaways


. This visual representation confirms your navigation relationship.
next to Alignment for consistent text positioning
at the bottom right of the Editor.