Reputation: 1
Trying to write my first iPhone application using Xcode 5.1. Here is part of my AppDelegate code
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
self.storyboard = [UIStoryboard storyboardWithName:@"Main" bundle:nil];
self.viewController = [self.storyboard instantiateViewControllerWithIdentifier:@"AddViewController"];
self.navigationController = [[UINavigationController alloc] initWithRootViewController:self.viewController];
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
[self.window setRootViewController:self.viewController];
[self.window addSubview:self.navigationController.view];
[self.window makeKeyAndVisible];
return YES;
}
I have a storyboard called "Main.Storyboard" with Navigation Controller and View Controller.
When I run my app I get SIGABRT error with NSInternalInconsistencyException exception
.
Could anyone help me to fix this error?
Thanks.
Upvotes: 0
Views: 338
Reputation: 27113
If you use storyboard as a main interface you don't need to setup any code. So you can add UINavigationController to the scene in you storyboard. Then set rootViewController using connection inspector.
Check the video for understanding: link
the code will look like this:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
return YES;
}
Upvotes: 0
Reputation: 49710
why you adding subview as a UINavigationController.view
and root-view as a view-controller
? Your code must be look like this:-
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
self.storyboard = [UIStoryboard storyboardWithName:@"Main" bundle:nil];
self.viewController = [self.storyboard instantiateViewControllerWithIdentifier:@"AddViewController"];
self.navigationController = [[UINavigationController alloc] initWithRootViewController:self.viewController];
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
[self.window setRootViewController:self.navigationController];
[self.window makeKeyAndVisible];
return YES;
}
And verified that identifier of your viewcontroller is setting correct or not that you are given in above.
Upvotes: 2
Reputation: 3798
Try this
-(BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
UIStoryboard *storyBord = [UIStoryboard storyboardWithName:@"Main_iPad" bundle:[NSBundle mainBundle]];
self.window.rootViewController = [storyBord instantiateInitialViewController] ;
[self.window makeKeyAndVisible];
return YES;
}
Upvotes: 0