У вас не должно быть 2 UIViewControllers на экране одновременно. Существует целый ряд проблем, связанных с этим, и это не то, как они предназначены для использования.
Один UIViewController должен управлять всеми подпредставлениями, связанными с одним экраном. Если вы хотите «дочерний» вид, подкласс UIView и добавить его как подпредставление.
Чтобы можно было легко переключаться между контроллерами представлений, добавьте UINavigationController в качестве корневого контроллера представлений и через него используйте контроллеры представления push / pop. Затем вы можете очень легко менять экраны. Помните - вы можете отключить навигационную панель и / или анимацию, у вас нет визуальной индикации того, что ваше приложение использует контроллер навигации, но в полной мере используется его способность управлять стеком представлений и обеспечивать отправку всех правильных уведомлений каждому контроллеру представления. как он загружается / появляется / исчезает / выгружается.
Если вы привыкли создавать каждое приложение с UINavigationController в качестве контроллера корневого представления, все становится очень просто.