MainWindow.xib absence in Xcode 4.2 beta 4 with iOS 5 SDK

Read Time:2 Minute, 58 Second

“FYI, I am very newbie in iPhone development.”

I had upgraded Xcode to 4.2 beta 4 and realised that there is no more templates for iOS 4.
Obviously, it did not include iOS 4 SDK because it said “with iOS 5 SDK”, duh!
I could not go back to Xcode beta 3 since I upgraded my iPhone to beta 4 as well.


In the tutorial that I am learning at the moment, it requires “Window-based application”.
Xcode 4.2 beta 4 does not have “window-based application”; so, I created a project with “Empty application”.
Unfortunately, “Empty application” has no longer “MainWindow.xib”, which tutorial teacher said to modify something in it.
So, I googled to make “MainWindow.xib” visible and found this article.

“MainWindow.xib” posted by Jeroen Trappers

What he said is that “MainWindow.xib” is not included by default in templates. He suggested to create “MainWindow.xib” manually as below:
(FYI, this instruction is only for me. It is better to go to original article and follow.)

1. Create new project in Xcode 4.2 beta and choose “Empty Application” template
2. Add “New File” to the project by choosing “iOS -> User Interface -> Empty”
3. Choose “iPhone” and name “MainWindow” (.xib will be added automatically)

4. Open “MainWindow.xib” in project navigator
5. Click “File’s Owner” in “Placeholders”
Change Class as “UIApplication” in “Identity Inspector”
6. Drag “Object” in the library into “Objects” panel on the left
7. Change the class of the Object as your delegate class, such as “DemoAppDelegate”
(The name of object will be automatically change like “Demo App Delegate”)
8. Drag “Window” in the library into “Objects” panel on the left

9. Open “DemoAppDelegate.h” in project navigator
10. Find below code

@interface DemoAppDelegate :
@property (strong, nonatomic)UIWindow *window;

11. Change as below:

@interface DemoAppDelegate :
@property (strong, nonatomic) IBOutlet UIWindow *window;

11. Open “MainWindow.xib” in project navigator
12. Click “File’s Owner” in “Placeholders”
13. Control-Drag “delegate” of “Outlets” in “Connections Inspector” to “Demo App Delegate” in “Objects”
14. Click “Demo App Delgate” in “Objects”
15. Control-Drage “window” of “Outlets” in “Connections Inspector” to “Window” in “Objects”

16. Open “Summary” of your project
17. Find “iPhone / iPod Deployment Info”
18. Change “Main Interface” as “MainWindow”

19. Open “DemoAppDelegate.m” in project navigator
20. Find below code

- (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;

21. Change as below

- (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;


—- Finish —–

[Added 2011/07/25]

I am following Bucky’s iPhone development tutorials:

And here is sample code of this tutorial developed on Xcode 4.2 beta 4 with iOS 5 SDK.

27 Thoughts

  1. Thanks for the post. MainWindow is working perfectly fine, but when i include a text field on the window i am unable to click on it. Did anyone have the same problem?

  2. A way to make this a little easier, when you add the .xib file into the project: Instead of adding an empty interface file (“iOS -> User Interface -> Empty”), add the type ‘Application’. It creates an xib already setup exactly this way, you just need to specify the app delegate’s class.

  3. Thanks so much for this. Would have been nearly impossible to have figured this out without your guide!

  4. Thanks so much. @Hima commenting out the code in step 21 made my buttons clickable

  5. Hi Chris, I seem to be having a problem with the latest release of Xcode 4.2. After following these instructions and going onto Buck’s tutorial. There is one step that Xcode will not allow me to perform: Ctrl+Drag Multi View App Delegate (in the nib file) and to drag it to the SwitchClass view controller. How did you do this step? It simply doesn’t allow me to link the two.

    1. Hi, @Scooper

      Honestly, I have not touched XCode recently, so I am not sure about your question. Does anyone can help him out?

  6. Sweet, was just missing the Main Interface option from the Target Summary. Thanks for the assistance!

  7. Hi,

    Your tutorial is helpful but I have just a small question, is it possible that in Xcode 4.2 the .xib files has been replaced by MainStoryboard that seems to make the same work ?!

    Thank you for your help

  8. hi
    if you do not click “use storyboard” option when you create the project. you will have .xib

  9. Thank you so much for the article. I was having some trouble making my multi view application work. Finally step 21 did the trick.Thanks.

  10. GREAT STUFF!!!
    I just learned how to use connectors :-)!
    Thank you for sharing this.

Leave a Reply to aHMET Cancel reply

Your email address will not be published.

This site uses Akismet to reduce spam. Learn how your comment data is processed.