Единственный способ, которым я смог сделать это, это использовать 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];
}