РЕДАКТИРОВАТЬ -----------------------------------
После дополнительных обновлений
Вы не можете представить контроллер представления из контроллера представления, который уже представлен, поэтому либо используйте другой стиль segue, либо обрабатывайте его правильно.
Попытка представить UIViewController, когда другой UIViewController представлен всемвам нужно закрыть существующий UIViewController и затем представить новый
. Вы также можете попробовать что-то вроде этого ... Добавить это в свой mainViewController в ViewDidLoad ()
definesPresentationContext = true
ОБНОВЛЕНИЕ ----------
Вы пытались сделать что-то вроде этого
override func viewDidDisappear(_ animated: Bool) {
if ViewController.isActive == true {
ViewController.isActive = false
}
}
или как это ..
self.searchController.dismiss(animated: false) {
self.performSegue(withIdentifier: "<YOUR SEGUE IDENTIFIER>", sender: cell)
}
или добавлениеэто где вы предпринимаете действия, чтобы переходить
if searchController.isActive {
self.searchController.dismiss(animated: false) {
// Do what you want here like perform segue or present
}
}
Это в основном то же самое, что и другие.добавление в основную диспетчерскую ... но это не лучшая практика
DispatchQueue.main.asyncAfter(deadline: .now() + 0.3) {
//dismiss and present new one
}