如何关闭在DidSelectRow上的UIPopover?
我有这样的代码来呈现酥料饼:如何关闭在DidSelectRow上的UIPopover?
- (UIPopoverController *)favoritesPopover
{
if (!favoritesPopover)
{
FavoritesViewController *fvc = [[FavoritesViewController alloc] init];
UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController:fvc];
[fvc release];
favoritesPopover = [[UIPopoverController alloc] initWithContentViewController:navController];
[navController release];
favoritesPopover.delegate = self;
}
return favoritesPopover;
}
- (IBAction)toggleFavorites:(id)sender
{
if (!self.favoritesPopover.popoverVisible)
[self.favoritesPopoverpresentPopoverFromBarButtonItem:sender permittedArrowDirections:UIPopoverArrowDirectionUp animated:YES];
else
[self.favoritesPopover dismissPopoverAnimated:YES];
}
现在,当didSelectRow
被称为FavoritesViewController
,我要被开除的酥料饼。我尝试了[self dismissPopoverAnimated: YES];
但这不被认可。
您需要在FavoritesViewController中获取对popoverController的引用。在FavoritesViewController中设置一个popoverController属性,然后您应该能够在didSelectRow
方法中解除它。
我做过@property(nonatomic,retain)UIPopoverController * popoverController;'并添加了'[self.popoverController dismissPopoverAnimated:YES];'但仍然没有解雇。 – Jon
在您的FavoritesPopover方法中,您未设置该属性。试试fvc.popoverController = favoritesPopover; – ms83
在你首先用(favoritesPopover)问你的问题的方法。在该方法中,在初始化favoritesPopover = [[UIPopoverController alloc] initWithContentViewController:navController]之后,放置fvc.popoverController = favoritesPopover ;.您还必须移动[fvc release];在它下面。 – ms83
也许你应该从这个函数返回'booksmarksPopover'?另外,你在哪里/如何展示popover? –
这是一个错字,现在修复。我通过一个UIBarButtonItem呈现这个,增加了更多的代码。 – Jon