I\'m busy building an app - that when launched for the first time it asks the user to do two things:
There are two things you need to do:
Then you have user the below line
loginView = [storyboard instantiateViewControllerWithIdentifier:@"LoginView"];
[(UINavigationController*)self.window.rootViewController pushViewController:loginView animated:NO];
Hope this helps. Let me know if you're still having the issue.
[self performSegueWithIdentifier:@"buyListSegue" sender:sender];
You're expecting the self.window.rootViewController
to be a UINavigationController
but it's a UIViewController
. This means that the outermost view controller in your storyboard is of the wrong type.
A better way to obtain the UINavigationController
(Which should work in this case) is to use the property self.navigationController
on any UIViewController
.
From what I understand you want to present a view the first time the user runs to have the user pick some stuff. What you should then do is present a modal view controller, like this:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
//isFirstRun is some boolean you use to determine if it's the first run
if(isFirstRun){
BBCounterySettingsViewController *controller = (BBCounterySettingsViewController *)[mainStoryboard instantiateViewControllerWithIdentifier: @"CountrySettings"];
[self.window.rootViewController presentViewController: controller animated:YES completion:nil];
}
I think the controller identifier "CountrySettings"
is set to the wrong controller. You're not getting a NavigationController
where you can call pushViewController
...