iOS: What is the difference between -init and -viewLoad of a ViewController?
ios, uiviewcontroller
Solution
The `init` methods (yes there is more then one) are where the `UIViewController` is initialized. Thus this is the place where you do stuff for the `UIViewController` and not its views.
If you use a `nib` to load you view then the best place to set any properties is the `viewDidLoad` method. This method gets called after the `nib` is loaded. If you set up the view programatically use the `loadView` method then this is the place to set `UIControl` properties.
Since the system can unload views to save memory, it will leave the `UIViewController` alone. Any properties set in the `init` methode will not be applied again, since the `UIViewController` is already initialized.
Problem
I don't know exactly what's the right place to set things like the tintColor of the NavigationBar or the title of my ViewController. It works in the -init method and the -viewLoad method too. What is the "best-practice" or "right way" to do this? Has one of those any advantages?