web-dev-qa-db-ja.com

設定アプリのようなポートレートモードのメニューを備えたiPadSplitViewController

IPadの設定などの縦向きの左側のメニューを使用してiPadアプリケーションでSplitViewを取得したいと思います。今のところ縦向きで、全画面表示のコンテンツビューがあり、ナビゲーションバーにボタンがあり、左側のメニューにポップオーバーが含まれています。

31
Smalldevil

これはあなたが必要とする魔法です:

このメソッドは、iOS5.0で利用可能なUISplitViewControllerDelegateにあります

- (BOOL)splitViewController: (UISplitViewController*)svc shouldHideViewController:(UIViewController *)vc inOrientation:(UIInterfaceOrientation)orientation  __OSX_AVAILABLE_STARTING(__MAC_NA,__IPHONE_5_0);
{
    return NO;
}
49
CornPuff

Matt Gemmellの MGSplitViewController を必ずご覧ください。

MGSplitViewControllerは、UISplitViewControllerのオープンソースの代替品であり、さまざまな便利な機能拡張が施されています。

11
samvermette

残念ながら、これは文書化されていないメソッド(つまり、プライベートAPI)です。

[splitViewController setHidesMasterViewInPortrait:NO];

これをシミュレートするには、テーブルビュー(マスターコントローラーとして)と別の汎用サブビュー(詳細コントローラーとして)を含むカスタムビューコントローラーを作成する必要があると思います。

9
kennytm

必要な効果を得る最も簡単な方法は、UISplitViewを使用しないことです。代わりに、通常のビューを作成し、左側にテーブルビュー、右側に詳細ビューを配置してから、自動サイズ設定を適切に設定して、すべてが縦向きと横向きの両方で正しく表示されるようにします。

8

Ccwasdenが述べたように、shouldHideViewControllerはiOS8で非推奨になりました。 Objective-Cでは、...を使用します。

splitViewController.preferredDisplayMode = UISplitViewControllerDisplayModeAllVisible;
5
ninefifteen

shouldHideViewControllerはiOS8で非推奨になっているため、代わりにこれを使用する必要があります(Swift)。

splitViewController.preferredDisplayMode = UISplitViewControllerDisplayMode.AllVisible
5
ccwasden

何人かの人々が私たちのブログで同じ質問をしました、そして私はそれに対する解決策を見つけました。あなたは私のブログ投稿の最後にそれを見つけるでしょう あなたの最初のスプリットビューコントローラー|シーサイド

一般に、必要なのはUISplitViewControllerのサブクラスを作成し、メソッドwillAnimateRotationToInterfaceOrientation: duration:をオーバーライドして、インターフェイスの向きが縦向きに変わるときにマスタービューと詳細ビューを調整することだけです。

乾杯、アンドレアス

4
anka

Swiftの場合:

splitViewController.preferredDisplayMode = .allVisible

2
rjobidon