IPadの設定などの縦向きの左側のメニューを使用してiPadアプリケーションでSplitViewを取得したいと思います。今のところ縦向きで、全画面表示のコンテンツビューがあり、ナビゲーションバーにボタンがあり、左側のメニューにポップオーバーが含まれています。
これはあなたが必要とする魔法です:
このメソッドは、iOS5.0で利用可能なUISplitViewControllerDelegateにあります
- (BOOL)splitViewController: (UISplitViewController*)svc shouldHideViewController:(UIViewController *)vc inOrientation:(UIInterfaceOrientation)orientation __OSX_AVAILABLE_STARTING(__MAC_NA,__IPHONE_5_0);
{
return NO;
}
Matt Gemmellの MGSplitViewController を必ずご覧ください。
MGSplitViewControllerは、UISplitViewControllerのオープンソースの代替品であり、さまざまな便利な機能拡張が施されています。
残念ながら、これは文書化されていないメソッド(つまり、プライベートAPI)です。
[splitViewController setHidesMasterViewInPortrait:NO];
これをシミュレートするには、テーブルビュー(マスターコントローラーとして)と別の汎用サブビュー(詳細コントローラーとして)を含むカスタムビューコントローラーを作成する必要があると思います。
必要な効果を得る最も簡単な方法は、UISplitView
を使用しないことです。代わりに、通常のビューを作成し、左側にテーブルビュー、右側に詳細ビューを配置してから、自動サイズ設定を適切に設定して、すべてが縦向きと横向きの両方で正しく表示されるようにします。
Ccwasdenが述べたように、shouldHideViewController
はiOS8で非推奨になりました。 Objective-Cでは、...を使用します。
splitViewController.preferredDisplayMode = UISplitViewControllerDisplayModeAllVisible;
shouldHideViewController
はiOS8で非推奨になっているため、代わりにこれを使用する必要があります(Swift)。
splitViewController.preferredDisplayMode = UISplitViewControllerDisplayMode.AllVisible
何人かの人々が私たちのブログで同じ質問をしました、そして私はそれに対する解決策を見つけました。あなたは私のブログ投稿の最後にそれを見つけるでしょう あなたの最初のスプリットビューコントローラー|シーサイド 。
一般に、必要なのはUISplitViewController
のサブクラスを作成し、メソッドwillAnimateRotationToInterfaceOrientation: duration:
をオーバーライドして、インターフェイスの向きが縦向きに変わるときにマスタービューと詳細ビューを調整することだけです。
乾杯、アンドレアス
Swiftの場合:
splitViewController.preferredDisplayMode = .allVisible