Just a tip for working with XIB files: if you need a different XIB file for iPad don’t do this:

NSString *nibName;
if (IS_IPAD)
  nibName = @"MyViewController-iPad";
else
  nibName = @"MyViewController";
MyViewController *vc = [[MyViewController alloc] initWithNibName:nibName bundle:nil];

Just name the xib files:

* MyViewController~iphone
* MyViewController~ipad

And initialise with

MyViewController *vc = [[MyViewController alloc] init];