Ух, я серьезно задумался над этим вопросом!
Итак, у меня есть представление Controller, называемое ContentView, в другом представлении Controller (Main VC).Главный VC имеет контроллер навигации, который был создан с использованием раскадровок.И contentView загружает 3 различных контроллера представления (vc1, vc2 и vc3) в зависимости от параметров, которые имеет Сегментированный элемент управления.Таким образом, теперь возникает вопрос:
Как я могу загрузить новый View Controller из кнопки в одном из подпредставлений (vc2), которое появится, когда пользователь выберет опцию из сегментированного элемента управления?
Хотя в раскадровке у меня есть контроллер видимого представления (vc2), очевидно, что я не могу подключить действие к кнопке с владельцем файла vc2 ', так как Nav Controller находится на главном VC.
Я пытался получить к нему доступ с помощью следующего кода:
AppDelegate *del = (AppDelegate *)[UIApplication sharedApplication].delegate;
UINavigationController *navigationController = (UINavigationController*)del.window.rootViewController;
DetalleMisMarcas *detalleMarcas = [[DetalleMisMarcas alloc] initWithNibName:@"DetalleMarcas" bundle:nil];
[navigationController pushViewController:detalleMarcas animated:YES];
Но он не работает.
Я пытался найтирешение с этого форума, но мне не повезло.Большинство считает, что существование главного окна Xcode 4.2 не имеет.
Наконец, способ загрузки 3-х подпредставлений находится здесь:
-(IBAction)segmentCtrlChanged:(id)sender {
UISegmentedControl *seg = sender;
if (seg.selectedSegmentIndex == 0)
{
MMViewController *mm= [self.storyboard instantiateViewControllerWithIdentifier:@"MMView"];
mm.view.frame = CGRectMake(0, 0, 320, 240);
[contentView addSubview:mm.view];
}
else if (seg.selectedSegmentIndex == 1) {
MPViewController *mp = [self.storyboard instantiateViewControllerWithIdentifier:@"MPView"];
mp.view.frame = CGRectMake(0, 0, 320, 240);
[contentView addSubview:mp.view];
}
}
-(IBAction)mainSubView:(id)sender
{
MMViewController *mm = [[MMViewController alloc] initWithNibName:@"MTView" bundle:nil];
[contentView addSubview:theMTView];
mm.view.frame = CGRectMake(0, 0, 320, 240);
}
Есть идеи?