ColumnStyleのUISplitViewControllerで最初に表示されるColumnを指定する


「iPhone(compact)の環境では、初期に表示するviewControllerをmasterにしたい」という事があります。Classic StyleのUISplitViewControllerではsplitViewController(_:collapseSecondary:onto:)というDelegateを使えば良いという記事が出てくるのですが、Column Styleを利用しているとClassic StyleのAPIは呼ばれないことになっており、利用できません。

代替となるColumn StyleのDelegateメソッドやプロパティを探したところ、Apple Developer Forumで発見したので紹介します。(そこからlinkされているStackOverFlow)

API

splitViewController(_:topColumnForCollapsingToProposedTopColumn:)

使い方

.primary.secondaryなど、任意のColumnを返します。そうすると初期表示のColumnが変更されます。

func splitViewController(_ svc: UISplitViewController, topColumnForCollapsingToProposedTopColumn proposedTopColumn: UISplitViewController.Column) -> UISplitViewController.Column {
    return .primary
}