Как загрузить контроллер вида внутри контейнера кнопкой?
Это код, который я использую, пока я нажимаю кнопку, в моем контроллере представления не происходит никаких действий.
- (IBAction)controlleraction:(id)sender {
ChildViewController *child=[[ChildViewController alloc]init];
rootviewController *firstview= [[rootviewControllerone alloc]init];
[self addChildViewController:child];
child.view.frame = self.container.frame;//container is a container view (uiview)
[self.container addSubview:child.view];
[firstview removeFromParentViewController];
[child didMoveToParentViewController:self];
NSLog(@"working");
}
Я обновил свой код в соответствии с предложением, и этот код не работает для меня.
в то время как я нажимаю кнопку, контроллер представления контейнера должен загрузить в моем представлении контейнера.
1 ответ
Чтобы загрузить новый View Controller по кнопке Click, сделайте следующее:
Подключите ваш первый контроллер ко второму, push или модальному переходу и дайте некоторое имя переходу в разделе "Атрибуты" на правой боковой панели раскадровки.
А затем в вашем файле реализации, напишите следующий код
- (IBAction)controlleraction:(id)sender
{
[self performSegueWithIdentifier:@"SegueIdentifier" sender:nil];
}
Эта ссылка должна быть полезной для вас.
РЕДАКТИРОВАТЬ: Чтобы вызвать два других контроллера по нажатию кнопки:
1) Снимите соединение кнопки с ВК.
2) Соедините все три контроллера (ВК с желтым, фиолетовым и черным фоном) с первым контроллером (ВК, имеющим кнопку)
3) Установите для идентификатора 3 различных сегмента, идентификатор сегмента (в разделе "Атрибуты" на правой панели раскадровки).
4) Затем вызовите другой VC по нажатию кнопки программно:
- (IBAction)controlleraction:(id)sender
{
if (CONDITION FOR 1ST VC)
[self performSegueWithIdentifier:@"SegueIdentifier1" sender:nil];
else if (CONDITION FOR 2nd VC)
[self performSegueWithIdentifier:@"SegueIdentifier2" sender:nil];
else if (CONDITION FOR 3rd VC)
[self performSegueWithIdentifier:@"SegueIdentifier3" sender:nil];
}