Обратите внимание, что представление контроллеров модального представления, как и другие ответы здесь, будет означать, что у вас постоянно накапливается стек контроллеров представления. Используйте приложение достаточно долго, и оно рухнет.
Вместо этого вы можете поменять вид из окна приложения. Вот один из способов сделать это:
Добавление члена данных в делегат приложения для сохранения текущего представления:
@class MyAppDelegate : NSObject <...>
{
UIViewController* currentVC;
}
и добавьте туда сообщение для обмена VC:
-(void)setCurrentVC:(UIViewController*)newVC
{
if (newVC==currentVC) return;
if (currentVC!=nil)
[currentVC.view removeFromSuperview];
currentVC = newVC;
if (newVC!=nil)
[self.window addSubview:newVC.view];
}
и переключаться с одного экрана на другой:
MapView* mapView = [[MapView alloc] init];
[[[UIApplication shared] delegate] setCurrentVC:mapView];