Я ломаю голову на последнюю неделю о том, как решить проблему, показывая и отклоняя несколько контроллеров представлений. Я создал образец проекта и вставляю код непосредственно из проекта. У меня есть 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 <VC1: 0x715e460> 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 на основном контроллере.
Другая кнопка на контроллере Main view также должна иметь возможность отображать VC2 непосредственно в обход VC1 и возвращаться к главному контроллеру при нажатии кнопки на VC2. Нет длинного кода, циклов или любых таймеров. Только голой кости звонки для просмотра контроллеров.