Вы должны использовать UINavigationController для управления push и pop UIViewController.
В UINavigationController вы должны определить корневой контроллер представления, дочерние контроллеры представления добавляются поверх него как слои.
вы могли бы иметь рут и добавить к нему ребенка. Когда вы нажимаете кнопку, высовываете дочерний элемент и заставляете рут толкать другого дочернего элемента.
действие будет примерно таким:
root push child1 (корень покрыт child1)
root pop child1 (root виден)
root push child2 (корень покрыт child2)
вот ссылка на документацию UINavigationController.
если вы хотите удалить UIView из UIViewController, тогда вам не нужен контроллер UINavigation. Вы можете создать 2 UIView в вашем viewController и поменять их местами при нажатии кнопки.
1) Создайте UIView для хранения поменявшихся представлений (контейнер)
2) Создайте свои UIViews, между которыми вы хотите поменяться. Поместите их в массив.
3) Подключите кнопку к действию. Этот метод должен выяснить индекс представления, которое необходимо показать, удалить все подпредставления контейнера, добавить подпредставление [viewsArray objectAtIndex: nextViewIndex] в контейнер.