Truth be told. It took us by surprise how TRICKY it is to upgrade MileBuddy to support iOS7 while making the app backward compatible with previous versions of iOS. Of course, like anything else in life. The first try is usually the hardest, but once you get your head straight, it begins the smooth sail.
The first mistake we made is to try to make the storyboard support both iOS7 and previous version of iOS. Horrible, horrible mistakes. It turns out that in iOS7, Apple decided to change the behavior of a number of UI component. See iOS7 Transition Guide for details. The tricky part is instead of setting the default behavior the same with iOS7 upgrade as optional, Apple set iOS7 behavior as default. When the developer open up the project with the shiny new Xcode 5, the UI is completely messed up. We are not just talking about offset, but all the navigation bar tint, tab bars, status bar, table cell, buttons, etc.
Our developers struggle to find a elegant way to support both version of iOS after numerous trials. We ended up opting for the simplest way out – Creating a separate Storyboard for iOS7. As the upgrade progress, boy, were we glad we made that decision. There are a few iOS7 bugs along the ways, but none of them are show stopper. We are glad we took the plunge and now seeing the result of the iOS7 upgrade.