Увольнение iPad UIPopoverController из контроллера контента - PullRequest
8 голосов
/ 18 апреля 2010

Итак, у меня есть поповер с кнопкой в ​​нем. Когда эта кнопка нажата, я хочу, чтобы поповер исчез. Это кажется достаточно легким, но я не могу понять это для моей жизни. Код, который я использую для отображения всплывающего окна, находится ниже:

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

В контроллере addcategoryview у меня есть:

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

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

Rootviewcontroller - это место, откуда создается поповер. К сожалению, ни один из этих методов не работает, чтобы отклонить его. любая помощь?

Ответы [ 4 ]

4 голосов
/ 02 мая 2010

В этой строке вы увидите предупреждение.

 aPopover.delegate = self;

и если бы вы выполнили свой код. Приложение зависнет. Вместо этого вам нужно сделать это как this .

2 голосов
/ 19 апреля 2010

у меня

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

и не понимаю, почему это не сработает в вашем случае.

Ваш if немного беспокоит, так что я думаю, что вы не разговариваете с тем мнением, о котором думаете. rootViewController.addCategoryPopover вероятно ноль, потому что вы сделали новый контроллер.

0 голосов
/ 05 мая 2013

использовать NSNotificationCenter To DissmissPoperController От отца viewControll

0 голосов
/ 10 мая 2010

Я думаю, что я ответил на аналогичный вопрос с помощью решения, которое я использовал для отклонения всплывающего окна с UIView, загруженным с MKMapView. Использование моего решения в основном такое же, как и для любого другого представления, загружающего поповер.

Посмотрите на: Как отключить PopoverAnimated на iPad с помощью UIPopoverController в MKMapView (SDK3.2) . Я надеюсь, что это решило вашу проблему.

...