Add UINavigationController inside UIViewController

I have a UIViewController with a UIToolbar (below) and I want to add a UINavigationController with a UINavigationBar inside. But the UINavigationController is not displayed.

MyViewController.m:

- (void)viewDidLoad { [super viewDidLoad]; int toolBarHeight = 44; UIToolbar *toolBar = [[UIToolbar alloc] initWithFrame:CGRectMake(0, [self.view bounds].size.height-toolBarHeight, [self.view bounds].size.width, toolBarHeight)]; UIBarButtonItem *button = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemRefresh target:nil action:nil]; toolBar.items = @[button]; [self.view addSubview:toolBar]; MyNavigationController *myNav = [[MyNavigationController alloc] init]; [self addChildViewController:myNav]; } 
+6
source share
1 answer

Adding a view controller as a child view controller is not enough. You also need to add the navigation controller view as a subview of the container controller view.

 [myNav willMoveToParentViewController:self]; myNav.view.frame = navFrame; //Set a frame or constraints [self.view addSubview:myNav.view]; [self addChildViewController:myNav]; [myNav didMoveToParentViewController:self]; 

See the View Controller Programming Guide for more information.

+14
source

Source: https://habr.com/ru/post/949954/


All Articles