Как загрузить контроллер вида внутри контейнера кнопкой?

Это код, который я использую, пока я нажимаю кнопку, в моем контроллере представления не происходит никаких действий.

 - (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];
}
Другие вопросы по тегам