Hello, I have this code in my AppDelegate:
[window addSubview:viewController.view];
[window makeKeyAndVisible];
return YES;
Now I want to create a XIB file in which I want to put a UINavigationController and add a UITableView. How do I create this through code without changing the delegate class?
I’ve tried this but it does not work:
PlacesTableViewController *obj = [[PlacesTableViewController alloc]init];
obj.title = @"Farmacie intorno a te";
UINavigationController *navC = [[UINavigationController alloc]initWithRootViewController:obj];
[self.window addSubview:navC.view];
First, the “modern” way to set up your window is to use the window’s
rootViewControllerproperty:The old way, where you add a view controller’s view to the window as a subview, still works but the app will log a complaint about wanting the root view controller to be set up by the time the app is done launching.
Second, if you’re going to replace the root view controller (in this case you’re replacing your
viewControllerwithnavC) using the old style, you’d want to remove the old view controller’s view from the window. Your best bet is to just use the window’srootViewControllerproperty, since your code will be expected to use that going forward anyway.