I've always been baffled about the strange coupling in the iPhone API -- in particular, with the UIViewController, which has hard-coded references to a UITabBarItem, UITabBarController, etc.
So, you end up adding a UIViewController to a UITabBarController, which in turn queries the UIViewController as to what should be displayed on the UITabBar (through the UIViewController's tabBarItem property).
Why doesn't it go UITabBarController->UITabBarItem->UIViewController? It seems so obvious.
Does anyone else think this is screwy?