Pregunta

Así que tiene un popover con un botón en ella. Cuando se pulsa este botón, quiero que el popover desaparezca. Parece bastante fácil, pero no puedo averiguar por la vida de mí. El código que utilizo para mostrar el popover es el siguiente:

    AddCategoryViewController* content = [[AddCategoryViewController alloc] init];
 UIPopoverController* aPopover = [[UIPopoverController alloc]
          initWithContentViewController:content];
 aPopover.delegate = self;
 [content release];

 // Store the popover in a custom property for later use.
 self.addCategoryPopover = aPopover;
 [aPopover release];
 [addCategoryPopover presentPopoverFromBarButtonItem:sender permittedArrowDirections:UIPopoverArrowDirectionUp animated:YES];

Dentro de la addcategoryviewcontroller, que tengo:

    -(IBAction)saveAddCategory:(id)sender {
 if (rootViewController == nil)
  rootViewController = [[RootViewController alloc] init];

 [rootViewController.addCategoryPopover dismissPopoverAnimated:YES];
 [rootViewController dismissPopover];
}

RootViewController es donde se crea el popover partir. Por desgracia, ninguno de estos métodos funcionan para descartarla. cualquier ayuda?

¿Fue útil?

Solución

estaría viendo una advertencia en esta línea.

 aPopover.delegate = self;

y si desea ejecutar su código. La aplicación se estrellaría. En su lugar lo que necesita hacer es como esta .

Otros consejos

tengo

- (void)viewWillDisappear:(BOOL)anAnimated
{
    [self.dPopover dismissPopoverAnimated: NO];
    self.dPopover = nil;
    [super viewWillDisappear: anAnimated];
}

y no ver por qué esto no funcionaría en su caso.

Su if es un poco preocupante, así que yo creo que no está hablando con la vista que se cree que está. rootViewController.addCategoryPopover es probablemente nula, debido a que cometió un nuevo controlador.

creo que respondí sólo una cuestión similar con la solución que solía despedir a un popover con un UIView cargado desde un MKMapView. El uso de mi solución es básicamente el mismo que para cualquier otro punto de vista la carga de un popover.

Tener un vistazo a: Cómo dismissPopoverAnimated en IPAD con UIPopoverController en MKMapView (SDK3.2) . Espero que resuelven su problema.

El uso NSNotificationCenter controlador DissmissPoper Para De Padre viewController

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top