As you can see from screenshot below, I have view controller, which I am reusing. Depending which tab bar is selected, different view controller instances are created. But depending on tab bar, I would like to initialize my view controller differently, before viewDidLoad. How can I achieve that?

Do it in the prepareForSegue in the container view controller after making sure that your segue's are all named.