Respingendo iPad UIPopoverController dal di dentro il suo controllore contenuti
-
27-09-2019 - |
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?
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