【问题标题】:Programmatically invoking a Popover not working以编程方式调用 Popover 不起作用
【发布时间】:2012-06-30 20:54:53
【问题描述】:

我在下面的目标是通过两条路径之一出现一个弹出框。

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

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

第二个不是 - 我有一个计时器 (NSTimer),它每秒调用一个方法,该方法使用倒计时中剩余的秒数更新标签。当倒计时达到零时,我想自动调用弹出框。我尝试了两种方法 - 一种是以编程方式调用按钮 ([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];

这两种方法都不起作用,因此我们将不胜感激。

【问题讨论】:

    标签: iphone ios ipad popover uistoryboardsegue


    【解决方案1】:

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

    Call another view when user taps on pin in mapview

    【讨论】:

    • 谢谢凯文。 “performSegueWithIdentifier”方法对我有用。干杯。托尼。
    【解决方案2】:

    使用popOverController的方法:

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

    您将需要创建一个 CGRect 并使用您希望 popOver 的箭头指向的位置。或者您可以分配给视图内任何 UIView 的 Frame。

    【讨论】:

      猜你喜欢
      • 2012-04-10
      • 1970-01-01
      • 1970-01-01
      • 2015-08-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-04-11
      相关资源
      最近更新 更多