SearchBar付きのTableViewでセルをタップ時画面遷移させる時、
検索モードだと画面遷移されず詰まったので解決策を共有します。
■セルタップで画面遷移する実装
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
let viewController = SelectViewController()
let navigationViewController = UINavigationController.init(rootViewController: viewController)
navigationViewController.modalTransitionStyle = .crossDissolve
navigationViewController.modalPresentationStyle = .fullScreen
self.present(navigationViewController, animated: true)
}
これだと普通にセルをタップした時は画面遷移するが
検索モードに入った状態でセルをタップしても画面遷移しなかった。
■解決方法
検索モードに入った時は、searchController.isActive = falseにする。
if searchController.isActive {
searchController.isActive = false
self.present(navigationViewController, animated: true)
} else {
self.present(navigationViewController, animated: true)
}
■全体のコード
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
let viewController = SelectViewController()
let navigationViewController = UINavigationController.init(rootViewController: viewController)
navigationViewController.modalTransitionStyle = .crossDissolve
navigationViewController.modalPresentationStyle = .fullScreen
if searchController.isActive {
searchController.isActive = false
self.present(navigationViewController, animated: true)
} else {
self.present(navigationViewController, animated: true)
}
}