質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.47%
Xcode

Xcodeはソフトウェア開発のための、Appleの統合開発環境です。Mac OSXに付随するかたちで配布されています。

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

Q&A

1回答

843閲覧

SearchBarから画面遷移ができない

ramu

総合スコア5

Xcode

Xcodeはソフトウェア開発のための、Appleの統合開発環境です。Mac OSXに付随するかたちで配布されています。

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

0グッド

0クリップ

投稿2019/09/10 00:58

前提・実現したいこと

SearchBarの検索候補欄から、他のViewControllerに画面遷移したい。

発生している問題・エラーメッセージ

SearchBarの検索候補欄から画面遷移しようとすると、真っ黒な画面になる。

###エラーメッセージ

U22ProgramigContest[8249:2128937] [MC] System group container for systemgroup.com.apple.configurationprofiles path is /private/var/containers/Shared/SystemGroup/systemgroup.com.apple.configurationprofiles 2019-09-09 12:02:22.268620+0900 U22ProgramigContest[8249:2128937] [MC] Reading from public effective user settings. 2019-09-09 12:02:22.508405+0900 U22ProgramigContest[8249:2128937] [Search] The topViewController (<U22ProgramigContest.SearchViewController: 0x147d15810>) of the navigation controller containing the presented search controller (<UISearchController: 0x149821200>) must have definesPresentationContext set to YES.

SearchBarの画面遷移コード

swift

1func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { 2 // セルの選択を解除 3 tableView.deselectRow(at: indexPath, animated: true) 4 tableView.reloadData() 5 // 別の画面に遷移 6 performSegue(withIdentifier: "tomovieDetails", sender: nil) 7 ViewController.row = indexPath.row 8 }

補足情報(FW/ツールのバージョンなど)

Xcode 10.3

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

以前似たような現象にあたったことがあるのですが、当時のプロジェクトからすでに外れていて実際のコードを確認できず、記憶をベースにググった範囲 (StackOverflow) での回答ですが、

UISearchControllerにフォーカスが当たっているとき、元のUITableViewControllerの上にUISearchControllerがすでにpresentしている状態です。この状態でUITableViewContollerに別の (遷移先の) ViewControllerをpresentすることはできません。
tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) で遷移する前に、searchController.isActiveを false にしてあげる必要があります。

投稿2019/09/12 08:22

thyda.eiqau

総合スコア2982

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.47%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問