Вы можете помещать / вставлять представления в стек UINavigationControler. Это также будет поддерживать кнопку «назад», если вы этого хотите.
[self.navigationController pushViewController:self.myVC animated:YES];
Свяжите метод с SegmentedControl, который выдвигает соответствующий ViewController при выборе соответствующего сегмента. VC с вашим сегментированным элементом управления внутри него потребуется ссылка на соответствующий VC каждого сегмента. viewDidLoad()
будет вызываться только один раз и только тогда, когда представление впервые помещается в стек навигации.
Когда вы меняете представления или хотите вернуться назад, вы можете вытолкнуть ВК из стека:
[self.navigationController popViewControllerAnimated:YES];
Это тот тип функциональности, который вы искали?
Редактировать для Ясность
UIViewController Ссылки:
Каждому представлению потребуется ссылка на два других ViewController. Это можно сделать так: (предположим, что мы находимся в «View1», и у нас также есть «View2» и «View3»:
View2Controller v2Controller = [[View2Controller alloc] initWithNibName:@"View2" bundle:nil];
View3Controller v2Controller = [[View3Controller alloc] initWithNibName:@"View3" bundle:nil];
Ссылка на self.navigationController
должна быть объявлена в делегате вашего приложения как:
UINavigationController* navigationController;
Может быть инициализировано как:
[navigationController initWithRootViewController: rootViewController];
RootViewController
rootViewController
- это UIViewController, который соответствует корневому представлению вашего приложения (независимо от загрузки при запуске). Он объявлен в делегате как:
RootViewController* rootViewController;
И инициализируется как:
rootViewController = [[RootViewController alloc] initWithNibName:@"RootViewController" bundle:nil];