当前位置: 首页 > 知识库问答 >
问题:

Segues从几个不起作用的地区打来电话

勾喜
2023-03-14

UIView animateWithDuration完成时,我有一个segue被5种不同的方法调用。我发现,如果我只调用一次segue(仅为一个UIImageView设置动画),一切都可以正常工作,但通过调用多个,会出现以下错误:

Warning: Attempt to present <GameOver: 0x7ffc7b714280> on <Playing_Page: 0x7ffc7b7128b0> whose view is not in the window hierarchy!

完成块(所有动画相同)

//In completion block
if (a!=b) {
    [self squareOneColour];
    [self squareOneMover];
}
if (a==b) {
    if (self.squareOne.hidden==NO) {
        [self performSegueWithIdentifier:@"gameOver" sender:self];
    }
}
//Conditions must be included in answer. The are unique to each animation

因此,当所有五个动画都完成(并满足条件)时,它会调用segue 5次并创建错误(我非常确定,因为我做了很多测试)

我想要的是,当动画(并满足条件)完成时,Playing_Page可以毫无错误地过渡到GameOver。有什么帮助吗?

共有1个答案

燕鸿文
2023-03-14

可以在每个动画的完成块中增加一个整数属性,并在该属性的重写setter中检查该值。在下面的示例中,该属性称为计数器,我有三个由按钮触发的动画。我只是显示了一个按钮的代码,但完成块中的代码是相同的。

-(void)setCounter:(NSInteger)counter {
    _counter = counter;
    if (_counter == 3) {
        NSLog(@"All three animations are done");
        // do your segue here
    }
}

- (IBAction)leftButton:(id)sender {
    self.leftCon.constant = 300;
    [UIView animateWithDuration:5 animations:^{
        [self.view layoutIfNeeded];
    } completion:^(BOOL finished) {
        self.counter +=1;
    }];
}
 类似资料:
  • 我有一个bean,它在XML中是一个类型化的-。但是当我尝试使用时,它并没有像预期的那样工作。我还尝试了,正如堆栈溢出中的一个相关问题所建议的那样,这也不起作用。 是否有一种方法可以查看xml中的bean是否被正确地实例化。我得到的属性服务值为。我已经为这个工作了一天了。仍然无法解开这个谜题。虽然我搜遍了spring reference和stackoverflow(奇怪的是,spring的地图Au

  • 我正在拨打一个电话录音应用程序,去话正在录音,但来电没有录音。我也测试了不同的手机,但问题是一样的。我已经测试了不同的方法,如“”、“”和“”。在尝试了不同的方法之后 Main MainActivity代码 设备管理代码 清单代码

  • 我有5个独立的docker图像:1个用于kafka经纪人,1个动物园管理员,1个生产者和2个消费者。我通过生产者向主题发布消息。基本上,我希望消息将在循环算法中使用,因此,为此,我使用相同的< code>group.id定义了消费者,并将< code > partition . assignment . strategy 的配置添加为< code > org . Apache . Kafka .

  • 问题内容: 什么样的配置是需要使用注解来自像,等等?这是我的代码: 当我尝试在另一个类中使用它时,验证不起作用(即,创建该对象时没有错误): 为什么这不适用和的约束?我还需要做什么? 问题答案: 为了使JSR-303 bean验证在Spring中起作用,您需要做一些事情: 注释的MVC名称空间配置: JSR-303规范JAR :(看起来您已经拥有了) 规范的实现,例如休眠验证,它似乎是最常用的示例

  • 问题内容: 我无法弄清楚为什么我的搜索区分大小写。我读过的所有内容都说ES默认情况下不敏感。我有一些映射,它们指定用于索引和搜索的标准分析器,但似乎有些东西还是区分大小写的,即通配符: 这失败了,但是“ rae *”可以按需工作。我需要使用通配符来进行“开始于”类型的搜索(我想)。 我正在从.Net应用程序中使用NEST,并在创建索引时指定分析器,因此: 在这种情况下,它使用的是简单分析仪,但标准