前提・実現したいこと
実現したいことは、SecondViewConteollrに遷移した時に、navigationItemのtitleViewにあるsearchBarにフォーカスをあてることです。
最初にSecondViewConteollrに遷移した時は問題ないのですが、popでFirstViewControllerに戻って再度SecondViewConteollrに遷移するとタイトル通りのログが表示されます。
発生している問題・エラーメッセージ
[Presentation] Attempt to present <UISearchController: 0x15181a400> on <UINavigationController: 0x15002ce00> (from <UINavigationController: 0x15002ce00>) which is already presenting <UISearchController: 0x150026800>.
該当のソースコード
class FirstViewController: UIViewController { @IBAction func didTapButton(_ sender: Any) { let viewController = self.storyboard?.instantiateViewController(withIdentifier: "SecondViewConteollr") as! SecondViewConteollr self.navigationController?.pushViewController(viewController, animated: true) } } class SecondViewConteollr: UIViewController { var searchContoller = UISearchController(searchResultsController: nil) override func viewDidLoad() { super.viewDidLoad() searchContoller.hidesNavigationBarDuringPresentation = false navigationItem.titleView = searchContoller.searchBar } override func viewDidAppear(_ animated: Bool) { super.viewDidAppear(animated) searchContoller.searchBar.becomeFirstResponder() } }
試したこと
becomeFirstResponderを削除すると、このログは表示されないのでこの一行が問題だと思います。
あなたの回答
tips
プレビュー