0

poptorootviewcontroller を実行するメソッド「test」があります。poptorootviewcontroller のアニメーションの前に遅延を入れたい。これが私のコードです:

-(void)test{
[UIView animateWithDuration:5.0
                      delay: 2.5
                    options: UIViewAnimationOptionCurveEaseIn
                 animations:^{
                     [self.navigationController popToRootViewControllerAnimated:NO];
                 }
                 completion:nil];
}

しかし、うまくいきません。何か助けはありますか?ありがとう!

4

1 に答える 1

3

投稿したコードは、遅延ではなく、アニメーションを実行するためのものです。

良い解決策は、次を使用することdispatch_afterです。

-(void)test{
    dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(2.5 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
        [self.navigationController popToRootViewControllerAnimated:NO];
    });

2.5を任意の遅延に置き換えます。

于 2014-11-17T17:47:22.563 に答える