How to add navigation controller programmatically?

32,982

Solution 1

try as below

UIViewController *bbp=[[UIViewController alloc]initWithNibName:@"UIViewController" bundle:nil];
UINavigationController *passcodeNavigationController = [[UINavigationController alloc] initWithRootViewController:bbp];
// [self.navigationController presentModalViewController:passcodeNavigationController animated:YES];
  [self.navigationController pushViewController:passcodeNavigationController animated:YES];
  [passcodeNavigationController release];

Solution 2

Add this code to your AppDelegate.m in the didFinishLaunchingWithOptions function:

UIStoryboard *sb = [UIStoryboard storyboardWithName:@"YOUR_STORYBOARD_NAME" bundle:nil];
yourViewControllerClassName *vc = [sb instantiateViewControllerWithIdentifier:@"YOUR_VIEWCONTROLLER_ID"];
self.navigationController = [[UINavigationController alloc] initWithRootViewController:vc];
self.window.rootViewController = self.navigationController;
[self.window makeKeyAndVisible];

yourViewControllerClassName is the .h and .m file name that is linked to your viewController.

YOUR_STORYBOARD_NAME is the name of your .storyboard file. For example, fill in Main if your .storyboard file is called Main.storyboard.

YOUR_VIEWCONTROLLER_ID is the ID for your veiwController. You can edit it in the Identity inspector.(See photo)

Hope this helps:)

Share:
32,982
user3267017
Author by

user3267017

Updated on April 08, 2020

Comments

  • user3267017
    user3267017 about 4 years

    I use code below, but it is not loaded:

    UIStoryboard * storyboard = [UIStoryboard storyboardWithName:@"Main" bundle:nil];
    self.mapViewController = [storyboard instantiateViewControllerWithIdentifier:@"MapViewController"];
    self.navigationController = [[UINavigationController alloc]initWithRootViewController:self];
    
    self.navigationBar = [[UINavigationBar alloc]init];
    [self.view addSubview:self.navigationBar];
    
    [self.navigationController.navigationController pushViewController:self.mapViewController animated:YES];