Ans :
There are only 2 options to display one viewcontroller2 from viewcontroller1. It is depend on what we want to achieve.
1.Modal Presentation : Use this only viewcontroller2 should take focus away from viewcontroller1 entirely until it is dismissed.
[self presentViewController:viewController2 animated:YES completion:nil];
ViewController2's presenting viewcontroller is ViewController1.
ViewController1's presented viewcontroller is ViewController2.
UIAlertViewController is working on this way.
2. ViewController Containment : Use this if you want to display viewcontroller1's some view in which viewcontroller2's shows. So if there are 4 views, then in 4 views of viewcontroller1, we can show 4 different viewcontroller.
There are only 2 options to display one viewcontroller2 from viewcontroller1. It is depend on what we want to achieve.
1.Modal Presentation : Use this only viewcontroller2 should take focus away from viewcontroller1 entirely until it is dismissed.
[self presentViewController:viewController2 animated:YES completion:nil];
ViewController2's presenting viewcontroller is ViewController1.
ViewController1's presented viewcontroller is ViewController2.
UIAlertViewController is working on this way.
2. ViewController Containment : Use this if you want to display viewcontroller1's some view in which viewcontroller2's shows. So if there are 4 views, then in 4 views of viewcontroller1, we can show 4 different viewcontroller.
[self addChildViewController:viewController2];
[self.view addSubview:viewController2.view];
[viewController2 didMoveToParentViewController:self];
So here viewcontroller2's parent viewcontroller is viewcontroller1.
But viewcontroller1's child viewcontroller array contrains viewcontroller2.
UINavigationViewController is working on this way.
So interviewer ask questions about presented viewcontroller, parentviecontroller.
But in 1st way, parent viewcontroller is nil.
in 2nd way, presented viewcontroller, presenting viewcontroller is nil.