Я построил UIViewController, чтобы содержать два других UIViewControllers. То, что я хотел бы сделать, используя UISegment в UINavigationBar, - это переход между обоими представлениями. Когда пользователь будет завершен, нажмите «Готово», и он вернется к RootViewController. Я получил это для работы, за исключением того, что UIViewControllers берут размер всего экрана, поэтому верхняя часть покрывается UINavigationBar. Они не приспосабливаются к пространству под UINavigationBar. Я пробовал разные методы без успеха.Переключение между двумя UIViewControllers в NavigationBar под
Я уже пытался в ChildUIViewControllers без успеха
self.edgesForExtendedLayout = UIRectEdgeNone;
Вот мой код:
RootViewController Вызывает контейнер
ContainerController *controller = [[ContainerController alloc] init]
[self.navigationController pushViewController:controller animated:YES];
Container Code
- (void)viewDidLoad {
[super viewDidLoad];
UIViewController *vc = [self getCurrentViewController]; // Returns Current ViewController to Display
[self addChildViewController:vc];
vc.view.frame = self.view.bounds;
[self.view addSubview:vc.view];
self.currentViewController = vc;
}
-(UIViewController *)getCurrentViewController{
UIViewController *vc;
switch ([[NSUserDefaults standardUserDefaults] integerForKey:@"currentView"]) {
case kView1:{
vc = (ViewController1 *)[[ViewController1 alloc] init];
}break;
case kView2:{
vc = (ViewController2 *)[[ViewController2 alloc] init];
}break;
}
return vc;
}
- (void)segmentedControlIndexChanged:(id)sender{
NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];
[userDefaults setObject:[NSNumber numberWithInt:[sender selectedSegmentIndex]] forKey:@"currentView"];
[userDefaults synchronize];
UIViewController *vc = [self getCurrentViewController];
[self addChildViewController:vc];
[self transitionFromViewController:self.currentViewController toViewController:vc duration:0.5 options:UIViewAnimationOptionTransitionCrossDissolve animations:^{
[self.currentViewController.view removeFromSuperview];
vc.view.frame = self.view.bounds;
[self.view addSubview:vc.view];
} completion:^(BOOL finished) {
[vc didMoveToParentViewController:self];
[self.currentViewController removeFromParentViewController];
self.currentViewController = vc;
}];
self.navigationItem.title = vc.title;
}
Кто-нибудь знает, в чем проблема? Благодарю.