私はしばらくこれに苦労してきましたが、解決策を見つけることができませんでした:
すべてのデバイス ファミリをサポートし、サイズ クラスを使用し、Swift 2.0 でプログラムされた iOS 9 アプリを入手しました。を使用してUISplitViewController
おり、折りたたまれた環境 (iPhone など) を除いて、すべてが思いどおりに機能します。
Master-ViewController はUITableViewController
、セルが選択されたときに置換セグエをトリガーする です。折りたたまれた環境では、これは、detailViewcontroller が画面にプッシュされることを意味します。はUISplitViewController
視覚的に のように動作しUINavigationController
ます。ただし、戻るボタンまたはスワイプ ジェスチャで detailViewController を閉じると、Master-ViewController で新しい置換セグエがトリガーされるまで割り当てが解除されません。
UISplitViewController
元々は両方のコンテンツを並べて表示するように設計されていたので、これは の機能のようなものだと思います。それにもかかわらず、折りたたまれた環境では、ポップされたときに以前にプッシュされた detailviewController の割り当てを解除UISplitViewController
する単純な のように動作することを望みます。UINavigationController
viewControllers
detailViewController がポップされた後、splitViewController の属性を手動で変更しようとしています。
if let firstVc = self.splitViewController?.viewControllers.first {
self.splitViewController?.viewControllers = [firstVc]
}
しかし、それは役に立ちません。detailViewController を空の「ダミー」-ViewController に置き換えるだけでは、遷移が自動的にアニメーション化されるため、どちらも機能しません。で遊んでUISplitViewControllerDelegate
も役に立ちませんでした...
これに対する解決策はありますか (たぶん簡単ですか? :))、私は盲目すぎて見ることができませんか?