iOS5以降、縦向きモードでメールアプリにある大きなポップオーバーを再作成したいと思います。
画面の左側からスワイプすると、rootView がリスト型のポップオーバーで表示されます。
プライベート API ですか? それに関するドキュメントさえ見つかりません。
助けてくれてありがとう!
これを行うことができた唯一の方法は、UISplitViewController を使用することです。ウィンドウ全体を占めるビューを詳細ビューとして配置し、「大きな」ポップオーバー内のビューをマスターとして配置します。
アイデアは、iOS5 のデフォルトのように側面にドッキングされるのではなく、常にポップオーバーからマスターを取得することです。
上記のストーリーボードの作業を行った後、detailViewController を splitViewControllerDelegate にします。
- (void)viewDidLoad
{
[super viewDidLoad];
self.splitViewController.delegate = self;
}
最後に、detailViewController に次の UISplitViewControllerDelegate メソッドを実装します。
- (BOOL)splitViewController:(UISplitViewController *)svc shouldHideViewController:(UIViewController *)vc inOrientation:(UIInterfaceOrientation)orientation
{
//This ALWAYS hides the masterVC (in your case the rootVC) regardless of device orientation
return YES;
}
- (void)splitViewController:(UISplitViewController *)svc willHideViewController:(UIViewController *)aViewController withBarButtonItem:(UIBarButtonItem *)barButtonItem forPopoverController:(UIPopoverController *)pc
{
// Assuming your detailViewController has a UIToolbar mapped to the .toolbar property
// This takes the barButtonItem from which your masterViewController "pops over"
// and places it in your UIToolbar
self.toolbar.items = [NSArray arrayWithObject:barButtonItem];
}