Как создать «большой» всплывающий поповер, как в приложении «Почта» (iOS5, портретный режим)? - PullRequest
1 голос
/ 03 ноября 2011

Я бы хотел воссоздать большой поповер, который у нас есть в почтовом приложении, в портретном режиме, начиная с iOS 5.

Вы проводите пальцем по левой части экрана, и rootView появляется в списке.тип-поповер.

Это частный API?Я даже не могу найти документацию по этому поводу.

Большое спасибо за вашу помощь!

1 Ответ

0 голосов
/ 14 марта 2013

Единственный способ, которым я смог сделать это, это использовать UISplitViewController.Поместите представление, которое вы хотите занять в своем окне, в качестве подробного представления, а представление в «большом» поповере в качестве мастера.

Идея состоит в том, чтобы ваш мастер всегда исходил из всплывающего окна вместобудучи пристыкованным сбоку, как это по умолчанию в iOS5

После того, как вы выполнили раскадровку выше, сделайте detailViewController в splitViewControllerDelegate

- (void)viewDidLoad
{
    [super viewDidLoad];
    self.splitViewController.delegate = self;
}

Наконец, реализуйте следующие методы UISplitViewControllerDelegate вdetailViewController

- (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];
}
...