2017-05-24 4 views
0

アップルのデフォルトのマスター/ディテール・テンプレートでは、showDetailセグエを扱う次のコードがあります:SplitViewControllerテンプレート - 詳細コントローラにセグエを実行するための装置を語っているメカニズムの代わりにマスターコントローラの

override func prepare(for segue: UIStoryboardSegue, sender: Any?) { 
    if segue.identifier == "showDetail" { 
     if let indexPath = tableView.indexPathForSelectedRow { 
      let object = fetchedResultsController.object(at: indexPath) 
      let controller = (segue.destination as! UINavigationController).topViewController as! DetailViewController 
      controller.detailItem = object 
      controller.navigationItem.leftBarButtonItem = splitViewController?.displayModeButtonItem 
      controller.navigationItem.leftItemsSupplementBackButton = true 
     } 
    } 
} 

:ストーリーボードは、このセグエは Show Detail (e.g. Replace)

enter image description here

のタイプである私の質問は以下であることを示します

MasterViewControllerの大画面モード(別名iPhone 6+、7+、またはiPad)では、通常のセグの場合と同じように埋め込みビューを押していませんコードはそれを「働く」ようにしています)? (マスターが交換されていないと詳細がされている私は、私は詳細なコントローラーに変更するマスターコントローラを参照してくださいiPadに期待する、読んでいますが、正しい行動が起こっているのコードを考えると

更新された)私は理由を理解できません。

答えて

0

ここでの魔法は、ストーリーボードのShow Detailです。コードはそれとほとんど関係がありません。それはちょうどDetailViewControllerにデータを渡します。必要に応じてコードを削除することもできます。新しいVCはまだ詳細ビューにプッシュされます。

ここセグエの「種類」

は非常に特別である - Show Detail

enter image description here

これは、詳細ビューに表示する新しいVCを引き起こすものです。種類をShowのように変更してください。詳細ビューはマスターにプッシュされます。

+0

こんにちは@Sweeper、あなたが提案したように 'kind'を' Show'に変更しましたが、アプリケーションの動作には影響しませんでした(コンパクトと大画面の両方から) –

関連する問題