同様の問題があり、最終的に解決策を見つけました。私が理解しているように、コンパクトな幅の場合、詳細ナビゲーションコントローラーはマスターナビゲーションコントローラーのビューコントローラーになります。したがって、あなたがしなければならないことは次のとおりです。
Split View Controller の collapsed プロパティをチェックして、ビューが 1 つだけ存在するかどうかを判断します。折りたたまれていない場合 (iPad など)、詳細ビューに加えてテーブル ビューが既に表示されています。
折りたたまれている場合 (iPhone など)、詳細ナビゲーション コントローラーを介してマスター ナビゲーション コントローラーへの参照を取得し、ルート ビュー コントローラー (この場合はテーブル ビュー コントローラー) にポップします。
これは、詳細ビュー コントローラーで使用するコードです。あなたの場合、詳細ビューコントローラーのボタンアクションにこのコードを追加するだけでよいと思います:
if splitViewController!.collapsed {
let detailNavController = parentViewController as UINavigationController!
let masterNavController = detailNavController.parentViewController as UINavigationController!
masterNavController.popToRootViewControllerAnimated(true)
}
幸運を!