I’m trying to make an iPhone app here, and I’ve gotten it down to a simple HelloWorld problem. For some reason, the following does not work in XCode 4.4. I’d really appreciate figuring out what’s going on.
I follow these steps:
- Start an ’empty project’ type
- Name it
- Add in a new objective-c class with a .xib. Say this new view controller is StartViewController, so I now have StartViewController .xib, .h, and .m.
- Check: file’s owner for the .xib matches the .h file. It does in IB.
- Change the background of the .xib to something other than black (I like stripes).
- Add these lines to the main app delegate:
import “StartViewController.h”
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
StartViewController* theController = [[StartViewController alloc]init];
[self.window addSubview:theController.view];
[self.window makeKeyAndVisible];
return YES;
}
And the app immediately crashes on running with:
* Terminating app due to uncaught exception ‘NSInternalInconsistencyException', reason: '-[UIViewController _loadViewFromNibNamed:bundle:] loaded the “StartView” nib but the view outlet was not set.’
How can I make it work?
EDIT: PS, I have no idea why the code formatting appears to have failed. I was under the impression that it was just four spaces at the beginning of a line…
I’m answering this because it’s so ludicrous.
Turns out that order matters.
I deleted the old controlling files, and then added ‘startingviewcontroller’, edited the appdelegate function to be startingviewcontroller, then it all works. Not sure why that should matter, but hey.