1. Create a new xib.

2. Dress it up.

3. Create a new ViewController.

Make sure it’s a UIViewController.

4. Associate the view’s file owner with the new ViewController.

Click on the Yellow Cube File’s Owner.
Enter your new ViewController name on Identify Inspector.

5. Set File’s Owner outlet to View.

Click File’s Owner.
Click ‘Connections inspector’.
Drag ‘view’ to the white view square on left hand side.

6. Update AppDelegate.

Do this if you want to use this new xib as your root controller.

Here I changed the default ViewController to UIViewController.
And then set the xib name to the new xib ‘BarView’.

AppDelegate.h

#import <UIKit/UIKit.h>

@interface AppDelegate : UIResponder <UIApplicationDelegate>
@property (strong, nonatomic) UIWindow *window;
@property (strong, nonatomic) UIViewController *viewController;
@end

AppDelegate.m

#import "BarViewController.h"

@implementation AppDelegate

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
    // Override point for customization after application launch.
    self.viewController = [[BarViewController alloc] initWithNibName:@"BarView" bundle:nil];
    self.window.rootViewController = self.viewController;
    [self.window makeKeyAndVisible];
    return YES;
}

Hit Run and Voila!