iPad SplitViewController Mostrar progtwig emergente

Tengo una aplicación iPad SplitViewController en la que oculto el panel izquierdo en los modos vertical y horizontal. Necesito mostrar el panel izquierdo en su popover cuando la aplicación recibe una notificación determinada. A pesar de experimentar con una serie de soluciones sugeridas diferentes, estoy luchando para encontrar la manera de lograr esto.

Estoy utilizando una implementación de MultipleMasterDetailManager que incluye el siguiente código:

/* forward the message to the current detail view * all detail views must implement UISplitViewControllerDelegate */ -(void)splitViewController:(UISplitViewController *)svc willHideViewController:(UIViewController *)aViewController withBarButtonItem:(UIBarButtonItem *)barButtonItem forPopoverController:(UIPopoverController *)pc { self.masterBarButtonItem = barButtonItem; self.masterPopoverController = pc; barButtonItem.title = NSLocalizedString(@"Show Sidebar", @"Show Sidebar"); [self.currentDetailController.navigationItem setLeftBarButtonItem:self.masterBarButtonItem animated:YES]; } /* forward the message to the current detail view * all detail views must implement UISplitViewControllerDelegate */ -(void)splitViewController:(UISplitViewController *)svc willShowViewController:(UIViewController *)aViewController invalidatingBarButtonItem:(UIBarButtonItem *)barButtonItem { //if (![self.currentDetailController isKindOfClass:[SyncSourceDetailViewController class]]) //{ self.masterBarButtonItem = nil; self.masterPopoverController = nil; [self.currentDetailController.navigationItem setLeftBarButtonItem:nil animated:YES]; //} } 

Existen methods similares en los propios controlleres de vista de detalle.

El método al que llamo cuando se recibe la notificación es el siguiente:

 - (void)navigateToLatest { [self navigateToDocumentsTab]; [[self dataLoader] navigateToLatest]; // populates data for the left table view UISplitViewController *splitViewController = (UISplitViewController *)self.window.rootViewController; UIView *view = [[[[[splitViewController viewControllers] objectAtIndex:1] viewControllers] objectAtIndex:0] view]; [self.masterDetailManager.masterPopoverController presentPopoverFromRect:CGRectMake(0, 0, 100, 100) inView:view permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES]; } 

Esto no funciona. También he intentado usar el método presentPopoverFromBarButtonItem pero no puedo encontrar el leftBarButtonItem en el código.

Tal vez lo hago por completo de la manera incorrecta.

Terminé de resolver este problema estableciendo una variable "showSidebar" en mi delegado de la aplicación en true en el método navigateToLatest. Entonces, en el evento ViewDidAppear de mi DetailViewController, verifico el valor de esta variable, si es cierto, muestro la barra lateral con el siguiente código:

 UIPopoverController *masterPopoverController= [[theAppDelegate masterDetailManager] masterPopoverController]; [masterPopoverController presentPopoverFromBarButtonItem:[self.navigationItem leftBarButtonItem] permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES]; [theAppDelegate setShowSidebar:NO];