Following this tutorial and this question, I attempted to create a custom UIViewController containing a UINavigationController. This mostly worked, except that the controller takes up the full screen and so the status bar overlaps it. Downloading the tutorial’s source and running it, I found that the tutorial had the same problem (it uses a UITableViewController). Further experimentation revealed that it works if the content of the custom controller is a UILabelView instead.

One possible solution is to change the
loadViewfunction of theUIViewControllerto set the frame of the view using:[[UIScreen mainScreen] applicationFrame]instead ofcontentView.frame. I’m not sure whether this is the best solution and how this will interact if you attempt to put the custom view controller underneath another view controller.Ideally, I would be be given the size I have to draw into inside the
loadViewmethod. Unfortunately, we aren’t given this. See this question for more info.