Модальные контроллеры View - как отображать и отклонять

Я ломаю голову за последнюю неделю о том, как решить проблему с показом и отклонением нескольких контроллеров представления. Я создал пример проекта и вставил код прямо из проекта. У меня есть 3 контроллера представления с соответствующими им файлами .xib. MainViewController, VC1 и VC2. У меня есть две кнопки на главном контроллере вида.

- (IBAction)VC1Pressed:(UIButton *)sender
{
    VC1 *vc1 = [[VC1 alloc] initWithNibName:@"VC1" bundle:nil];
    [vc1 setModalTransitionStyle:UIModalTransitionStyleFlipHorizontal];
    [self presentViewController:vc1 animated:YES completion:nil];
}

Это открывает VC1 без проблем. В VC1 у меня есть еще одна кнопка, которая должна открывать VC2 и в то же время закрывать VC1.

- (IBAction)buttonPressedFromVC1:(UIButton *)sender
{
    VC2 *vc2 = [[VC2 alloc] initWithNibName:@"VC2" bundle:nil];
    [vc2 setModalTransitionStyle:UIModalTransitionStyleFlipHorizontal];
    [self presentViewController:vc2 animated:YES completion:nil];
    [self dismissViewControllerAnimated:YES completion:nil];
} // This shows a warning: Attempt to dismiss from view controller  while a presentation or dismiss is in progress!


- (IBAction)buttonPressedFromVC2:(UIButton *)sender
{
    [self dismissViewControllerAnimated:YES completion:nil];
} // This is going back to VC1. 

Я хочу вернуться к контроллеру основного вида, в то же время VC1 должен был быть навсегда удален из памяти. VC1 должен отображаться только при нажатии на кнопку VC1 на главном контроллере.

Другая кнопка на контроллере основного вида также должна иметь возможность отображать VC2, напрямую минуя VC1, и должна возвращаться к главному контроллеру при нажатии кнопки на VC2. Там нет долго работающего кода, циклов или каких-либо таймеров. Просто голые звонки для просмотра контроллеров.

Ответы на вопрос(6)

Ваш ответ на вопрос