Таким образом, у меня есть легкая сдоба с кнопкой в нем. Когда та кнопка нажата, я хочу, чтобы легкая сдоба ушла. Это кажется достаточно легким, но я не могу понять это ни за что в жизни. Код, который я использую для показа легкой сдобы, ниже:
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];
В addcategoryviewcontroller я имею:
-(IBAction)saveAddCategory:(id)sender {
if (rootViewController == nil)
rootViewController = [[RootViewController alloc] init];
[rootViewController.addCategoryPopover dismissPopoverAnimated:YES];
[rootViewController dismissPopover];
}
Rootviewcontroller - то, где легкая сдоба создается из. К сожалению, ни один из тех методов работают для отклонения его. какая-либо справка?
Вы увидите предупреждение в этой строке.
aPopover.delegate = self;
и если бы вы выполнили ваш код. приложение бы упало. Вместо этого вам нужно сделать так вот так.
У меня есть
- (void)viewWillDisappear:(BOOL)anAnimated
{
[self.dPopover dismissPopoverAnimated: NO];
self.dPopover = nil;
[super viewWillDisappear: anAnimated];
}
, и я не понимаю, почему это не сработает в вашем случае.
Ваш if
немного беспокоит, так что я предполагаю, что вы говорите не с той точкой зрения, которая вам кажется. rootViewController.addCategoryPopover
, вероятно, равен нулю, потому что вы создали новый контроллер.
Думаю, я ответил на аналогичный вопрос с помощью решения, которое я использовал, чтобы закрыть всплывающее окно с UIView
, загруженным из MKMapView
.
Использование моего решения в основном такое же, как и для любого другого представления, загружающего всплывающее окно.
Взгляните на: Как закрыть PopoverAnimated на iPad с помощью UIPopoverController в MKMapView (SDK3.2) . Надеюсь, это решило вашу проблему.