2013-06-29 1 views
0

J'ai une application iPad, créée en XCode 4.6.3, iOS 6.2, ARC et Storyboards. Je crée un UIPopover par programme dans SubViewData.m.Impossible de supprimer un UIPopover d'une autre classe

@property (strong, nonatomic) UIPopoverController *popover; 

    // make rectangle to attach popover 
    CGRect rectangle = CGRectMake(touchPoint.x, touchPoint.y, 110, 1); // 0 height puts arrow on exact touch point 

    // get addressability to storyboard ViewController 
    UIViewController *popoverMainView = [[UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil] instantiateViewControllerWithIdentifier:@"menuView"]; 

    popover = [[UIPopoverController alloc] initWithContentViewController:popoverMainView]; 
          [popover presentPopoverFromRect:rectangle inView:self 
          permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES]; 

je définir des notifications dans une autre classe (QuickAppointment.m) lorsqu'un UIButton dans le popover a été exploité. Je reçois la notification et émets ce code à partir de CalendarViewController.m:

SubViewData *svd = [[SubViewData alloc] init]; 
[svd.popover dismissPopoverAnimated:YES]; 

Rien ne se passe! Je ne comprends pas pourquoi pas ... alors, qu'est-ce que je fais de mal?

Répondre

1

Regardez le code que vous écrivez:

SubViewData *svd = [[SubViewData alloc] init]; 

Cela crée un complètement nouveau et différent instance de SubViewData, et non pas celui qui affiche le popover.

+0

J'ai essayé de mettre le code de rejet dans SubViewData.m, mais rien ne se produit alors non plus ... où le code à rejeter devrait-il être? et comment accéder à l'instance de SubViewData sans en créer une nouvelle? (Je pensais que je le faisais de la bonne façon, mais apparemment pas) – SpokaneDude

+0

Puisque je ne sais pas comment ou ce que vous ajoutez à SubViewData.m je ne peux pas aider avec ça. En ce qui concerne l'obtention de l'instance correcte, vous faites cela de la même manière que vous obtenez des instances pour n'importe quoi; en passant une référence à l'objet qui appellera ses méthodes. – Abizern

+0

J'ai essayé cela (en passant une référence) ... c'est ce que j'ai utilisé: [SubViewData.popover dismissPopoverAnimated: YES]; Il ne sait pas ce que _popover_ est ... Pouvez-vous me donner un doc où je peux faire une lecture sur toute cette instanciation? J'apprécierais vraiment, vraiment. Je me bats avec ceci ... – SpokaneDude

Questions connexes