Set root view for UINavigationController

2019-05-26 15:57发布

问题:

I seem to have forgotten how to change the root view for a UINavigationController

I have this code:

[window addSubview:navController.view];

but where do i set (preferably through interface builder) the root view please?

回答1:

UINavigationController has a viewControllers property, which is a NSArray and is not read-only, so it can be replaced.

From Apple's UINavigationController reference

Assigning a new array of view controllers to this property is equivalent to calling the setViewControllers:animated: method with the animated parameter set to NO.

So go ahead and create a NSArray with your root view controller and set UINavigationController.viewControllers to that array.



回答2:

See this article :

Changing a UINavigationController’s Root View Controller



回答3:

The subcontroller of your navigation controller is the root controller. You can drag another view controller onto the navigation controller in IB to change it. It's easiest to see if you switch to View -> as List.