Jonathan Wight wrote about the problems with iOS 5’s new Storyboards API back in December, just as I was starting to use them for myself. At the time, I thought I would be able to avoid most of the problems he mentioned because the project has a relatively small scope. Sadly, there’s one issue that makes the technology simply unviable: the lack of user–defined relationships.
Consider a segmented control that toggles between a map view and a list view. At first glance, Storyboards makes it easy to follow the UITabBarController pattern with your own generic SegmentContainer class and a custom segue. But without user–defined relationships, you can’t add child scenes to a viewControllers outlet collection on the SegmentContainer’s scene.
My problem can be solved by writing a SegmentContainer equivalent that’s not as generic, but it still contributes to Jonathan’s overall point that storyboards simply aren’t ready for mainstream use. The container pattern is used by Apple’s own controllers; I’m honestly not sure how they implemented Storyboards without allowing it in custom controllers.
I love using Storyboards, but these kinds of problems are making me question whether I should.