Domanda

Così ho un popover con un pulsante in esso. Quando questo pulsante viene premuto, voglio che il popover di andare via. Sembra abbastanza facile, ma non riesco a capire per la vita di me. Il codice che uso per mostrare la popover è qui sotto:

    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];

All'interno della addcategoryviewcontroller, ho:

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

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

RootViewController è dove il popover è stato creato da. Purtroppo, nessuno di questi metodi di lavoro per respingerlo. qualsiasi aiuto?

È stato utile?

Soluzione

Si sarebbe visto un avvertimento a questa linea.

 aPopover.delegate = self;

e se si desidera eseguire il codice. L'applicazione potrebbe andare in crash. Invece è necessario farlo come questo .

Altri suggerimenti

ho

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

e non vedo perché questo non avrebbe funzionato nel vostro caso.

Il tuo if è un po 'preoccupante, quindi la mia ipotesi è che non si sta parlando alla vista ti credi di essere. rootViewController.addCategoryPopover è probabilmente pari a zero, perché hai fatto un nuovo controller.

Credo ho risposto solo una questione simile con la soluzione che ho usato per respingere un popover con un UIView caricato da un MKMapView. L'uso della mia soluzione è fondamentalmente lo stesso come per qualsiasi altro punto di vista si carica un popover.

Date un'occhiata a: Come dismissPopoverAnimated su iPad con UIPopoverController in MKMapView (SDK3.2) . Mi auguro che ha risolto il problema.

uso NSNotificationCenter Per DissmissPoper controller Di padre viewController

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top