首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >调用dismissPopoverAnimated或在Popover之外单击一次时,popover未被清除

问调用dismissPopoverAnimated或在Popover之外单击一次时,popover未被清除
EN

Stack Overflow用户
提问于 2011-08-27 05:48:59
回答 1查看 1.6K关注 0票数 1

我希望有人能帮我解决这个奇怪的bug。我有一个带有按钮的弹出窗口,可以执行各种操作。有一个工具栏项目必须单击才能弹出弹出窗口。下面是调用的操作方法:

代码语言:javascript
复制
-(IBAction)showActions:(id)sender
{
  ActionsPopUpController* controller = [[ActionsPopUpController alloc] initWithDelegate:self state:DELETE_ENABLED | FACEBOOK_ENABLED | TWITTER_ENABLED | EMAIL_ENABLED];
  _actionsPopUp = [[UIPopoverController alloc] initWithContentViewController:controller];
  [controller release];
  [_actionsPopUp presentPopoverFromRect:_actionButton.frame inView:self.view permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES];
  _actionsPopUp.delegate = self;
}

如您所见,我有一个属性/ivar (actionsPopUp),它保留了对UIPopoverController的引用。稍后当我想要关闭弹出窗口时,它被用来调用dismissPopoverAnimated。下面是它的用法示例:

代码语言:javascript
复制
-(void)shareWishToEmail:(id)sender
{
  [_actionsPopUp dismissPopoverAnimated:YES];
  [[WishCloudService sharedInstance] showMailer:self withItems:[NSArray arrayWithObject:self.item] delegate:self modal:YES];
}

在此方法中,我首先关闭popover,然后执行与popover中按下的按钮相关联的操作。不幸的是,这似乎不起作用。将执行该操作,但不会取消弹出窗口。此外,当用户在弹出窗口之外单击一次时,它似乎不会被忽略。但如果再次单击外部,它确实会被取消。另一个观察结果是,第一次点击似乎隐藏/消除了弹出窗口的阴影,而不是弹出窗口本身。这是第二次点击弹出窗口。然而,无论调用多少dismissPopoverAnimated,似乎都不会忽略弹出窗口。

我用UIPopoverControllers替换了似乎在应用程序的其他部分工作,但得到了相同的结果,这使我相信它是特定于我正在呈现弹出窗口的UIView/UIViewController。我以编程方式创建视图,而不是通过NIB。我不知道为什么我决定这样做,但我不认为它应该是相关的。如果不是这样,请让我知道。下面是我的loadView方法:

代码语言:javascript
复制
-(void)loadView
{
  self.view = [self createView:_item];
  self.currentView = self.view;
  _wishItemViews = [[NSMutableDictionary dictionary] retain];
  [_wishItemViews setObject:_currentView forKey:[NSNumber numberWithInteger:_currentIndex]];
}

我有一个currentView属性,因为我需要能够滑入滑出新视图,并且我正在使用CATransition动画来实现这一点。currentView属性用于在执行转换时交换视图。再说一次,我不确定这是否相关,但我将其包括在内是为了完整性,以防它确实有所不同。希望这些信息足以让一些人帮我指明正确的方向。或者至少提示一些额外的问题,可能会帮助我思考这个问题。任何帮助都将不胜感激。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-08-27 12:46:25

另一个观察结果是,第一次点击似乎隐藏/消除了弹出窗口的阴影,而不是弹出窗口本身。

看起来你偶然发现了这种罕见的双弹幕。;-)

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7210897

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档