edit : ok, what i’ve learned is you might choose between initWithNibName or initWithCoder, depending if you use a .xib or not. And “init” is just not the constructor method for UIVIewController.
This might seem to be a fairly simple question, but I’m not sure about the answer : I’ve read that this method “is only used for programatically creating view controllers”, and in the doc : “It is loaded the first time the view controller’s view is accessed”
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil {
if (self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]) {
// Custom initialization
}
return self;
}
Ok so to understand it a bit more :
What would you write as “custom initialization” into this method?
When should you implement this method, like that in the code, if you can just write it after allocating your viewController (example : MyVC *myvc = [[MyVC alloc] initWithNibName:...bundle...];)
Thanks for your answer
Usually I do this:
Then do this in my
initmethod:If controller needs some parameters from the initializee, then I write custom
initWithFoo:(Foo *)foomethod:This allows simplification of initialization as well as extra initializers for your view controller if it can be initialized from different locations with different parameters. Then in
initWithFoo:andinitWithBaryou’d simply callinitwhich calls super and initializes instance variables with default values.