Building a multi view iphone application with Interface Builder

Published December 14, 2010 by Toran Billups

When I first started doing iPhone development I was excited to learn the objective-c programming language. But I soon found that you couldn‘t build a great iPhone application without also learning the tools built around the rich interface controls. One tool in particular was Interface Builder and my first experience was less than stellar.

But looking back it‘s not the fault of Interface Builder but instead the Microsoft drag n drop tools that caused me to dislike the UI building experience for iPhone. You see when I first started doing web development on the Microsoft stack they had these 'neat' drag n drop tools for webforms and yet for some odd reason they never seemed to work after the inital deploy. Not to mention if you had to open the same project on another developer machine. So when I first started using Interface Builder I disliked it from the get go simply because it reminded me in a way of the old school VB6 style drag n drop user interface building tools that always seemed to fail me.

I have since put this fear aside and embraced the tooling because it really helps cut down on the boiler plate code normally required if you code everything by hand in objective-c. That said, I still found the tooling difficult at first because I didn‘t understand how the back-end application code communicated with the Interface Builder controls on the front-end. This was even more difficult when I started to grow my application beyond a single view.

I finally got a simple multi-view iPhone application up and running but since I struggled with the initial concepts, I decided to record a screencast to show how someone new might get started with Interface Builder and a multi-view application. You can download or stream the mp4 here.

In addition I pushed the source code for the final working solution to github. This way you could have the full project for reference if you decided to follow along.

Buy Me a Coffee

Twitter / Github / Email