You definitely should not be calling [super loadView]
. I'd say you found a bug in the ZoomingPDFViewer example.
You override loadView
when you want to programatically create the view hierarchy for your view controller (not using a xib).
As you pointed out, the docs clearly state that you should not call super.
Your custom implementation of this method should not call super.
I assume this is to avoid loading both from a xib and programatically creating a view as this method is used by the base to load a view from a xib:
If the view controller has an associated nib file, this method loads
the view from the nib file.
Note also that even if during allocation of your UIViewController
object you pass nil for the nibNameOrNil parameter that the UIViewController
implementation of loadView
will try to load any xib with the associated class name in it.
A view controller has an associated nib file if the nibName property
returns a non-nil value, which occurs if the view controller was
instantiated from a storyboard, if you explicitly assigned it a nib
file using the initWithNibName:bundle: method, or if iOS finds a nib
file in the app bundle with a name based on the view controller’s
class name. If the view controller does not have an associated nib
file, this method creates a plain UIView object instead.
The real intent of this method is to give you full control of building the view hierarchy without relying on the built in xib loading mechanism.:
You can override this method in order to create your views manually.
Personally, I override loadView
if: 1.) The xib I would make for it is really trivial or 2.) The layout of the control is very dynamic, so creating a xib with a static layout has little benefit.
[super loadView]
would load that nib intoself.view
. I've never actually seen this happen (since I never call the super), but based on the docs that's what I'd expect. Also, I think calling[super loadView]
would minimally assign a generic view toself.view
, which is what your code should be doing. Again this won't hurt anything (assuming the custom implementation ofloadView
assigns a value toself.view
after calling the super), but it is wasteful. – Neoterism