以编程方式调用Popover无法正常工作

时间:2012-06-30 20:54:54

标签: iphone ios ipad popover uistoryboardsegue

我的目标是通过以下两种途径之一显示Popover。

第一个是按下按钮时显式,第二个是倒数计时器到期时。

第一个是工作 - 我将Storyboard Segue配置为Popover并绑定到按钮。按下按钮时,会出现一个弹出窗口。太好了!

第二个不是 - 我有一个定时器(NSTimer),每秒调用一次 - 一个方法,用倒计时剩余的秒数更新标签。当倒计时到零时,我想自动调用popover。我尝试了两种方法 - 一种是以编程方式调用按钮([self popoverButton:self])。另一个是使用以下代码:

PopViewController *myPopVC = [[PopViewController alloc] init];
UIStoryboardSegue *aSegue = [[UIStoryboardSegue alloc] initWithIdentifier:@"popoverSegue" source:self destination:myPopVC];
[self prepareForSegue:aSegue sender:self];
[aSegue perform];

这两种方法都不起作用,所以我们非常感谢任何帮助。

2 个答案:

答案 0 :(得分:0)

使用popOverController的方法:

[pop presentPopoverFromRect:rect inView:self.view permittedArrowDirections: UIPopoverArrowDirectionUp animated:YES];

您需要创建一个CGRect,其中包含您想要popOver箭头指向的位置。或者您可以在视图中指定任何UIView的Frame。

答案 1 :(得分:0)

确保segue在storyboard中设置了标识符,然后调用performSegueWithIdentifier方法。有关如何在计时器到期时执行此操作的示例,请参阅此答案。

Call another view when user taps on pin in mapview