Как мне найти, какой viewController выдвинул? - PullRequest
0 голосов
/ 22 января 2020

У меня есть простой навигационный код, который переходит от одного viewController к следующему.

UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"myStoryboard" bundle:nil];
UIViewController *viewController = [storyboard instantiateViewControllerWithIdentifier:@"myVC"];

UINavigationController *myNavigationController = [[UINavigationController alloc] initWithRootViewController:viewController];

[myNavigationController pushViewController:viewController animated:NO];

При этом я получаю сообщение об ошибке:

... нажимает один и тот же экземпляр контроллера представления ... более одного раза, который не поддерживается и, скорее всего, является ошибкой в ​​приложении

Теперь я понимаю, что где-то в приложении тот же viewController имеет ( или может?) был выдвинут, и эта строка кода должна быть удалена или иначе обработана. Дело в том, что я работаю в огромном проекте и понятия не имею, где может быть эта строка кода.

Итак, вопрос в том, как мне с этим справиться? Могу ли я pop pushed viewController программно до pushing «исправить» viewController? Или есть какой-то способ найти push, который вызывает проблему? Или я могу решить это другим способом?

1 Ответ

0 голосов
/ 22 января 2020

Контроллер навигационного представления является стеком V C. Если вы пройдете по стеку, вы увидите, что это за объект. Затем вы можете выполнить простое сравнение строк с именами типов классов.

...