Я изучаю, как обрабатывать иерархии контроллеров представления с помощью раскадровки. У меня есть 2 ViewController: корень типа cwViewController (я понимаю, что это «я» ниже) и второй типа WorkspaceViewController. Я получаю сообщение "Попытка презентации во время презентации!" в результате этого кода.
- (IBAction)nextView {
WorkspaceViewController *workspace = [[WorkspaceViewController alloc] initWithNibName:nil bundle:nil];
[self presentViewController:workspace animated:YES completion:NULL]; }
Ответ на вопрос Как правильно представить контроллер представления? является ближайшим ответом, который мог бы apply, но не совсем соответствует этому сценарию, потому что я не переключаюсь между VC, я просто представляю один, а затем закрываю его, чтобы отобразить оригинал.
Затем я попытался отклонить текущий, прежде чем представить второй, как предлагалось в некоторых ответах, например:
[self dismissViewControllerAnimated:NO completion:nil];
[self presentViewController:workspace animated:YES completion:NULL];
Но это просто дает мне дополнительное предупреждение: попытка отклонить от контроллера представления во время презентации или отклонить!
Проведя некоторые другие исследования, я увидел, что аналогичные проблемы решаются путем добавления блока в
[self dismissViewControllerAnimated:YES...]
Но здесь это не помогает, потому что мое предупреждение возникает еще до того, как я доберусь до того момента, когда вызову этот метод отклонения. Любые дополнительные знания о том, как должны обрабатываться порядок и иерархия представлений, будут большой помощью. Большое спасибо.