Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Xcode 4.2 iOS Empty Application and storyboards

I'm an Xcode newbie, and I'm trying to make my first training app. Since apparently Empty Application template is the only template that offers pre-integrated Core Data, I choose that. However, after that, I can't get UI to work (it remains empty).

What I did:

  • Empty Application template
  • New iPad Storyboard file
  • Splashed Tab Bar Controller onto it
  • Changed Main Storyboard in Project's Summary view
  • Hit ⌘R
  • Stared at pure-white iPad screen, without any tabs

I tried diffing against another project that I created as a Tab Bar Application (which does reflect my Storyboard changes), without any insight.

like image 348
Amadan Avatar asked Oct 26 '11 17:10

Amadan


2 Answers

Comment out (or remove) the window creation and display code in AppDelegate.m as follows:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    // self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
    // Override point for customization after application launch.
    // self.window.backgroundColor = [UIColor whiteColor];
    // [self.window makeKeyAndVisible];

    return YES;
}

When using a storyboard, a main UIWindow is created for you automatically. What is happening in your case is that you are creating another white window and putting it over the top of the tab UI.

ALSO - note that the Master/Detail template also gives you a core data option.

like image 96
Robin Summerhill Avatar answered Nov 15 '22 14:11

Robin Summerhill


For an Empty Application project, you have to do two things, after you've added your Storyboard file...

  1. Add a row to your project Info.plist file:

    Key: Main storyboard file base name
    Value: Storyboard
    

    (or whatever you named your storyboard file)

  2. Delete the contents of application:didFinishLaunchingWithOptions: except return YES;:

    - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
    {
        return YES;
    }
    
like image 41
Scott Gardner Avatar answered Nov 15 '22 15:11

Scott Gardner