0

URL を含む配列を実行して、複数の通帳パスを追加したいと考えています。問題は、View Controller が表示できるよりもループが速くカウントされることです。これが私のコードです:

    NSArray *passURLArray = [NSArray new];
    passURLArray = response;

    for (int i = 0; passURLArray.count; i++) {
        NSString *passURLString = [NSString stringWithFormat:@"http://test.de%@", [passURLArray objectAtIndex:i]];
        NSData *data = [NSData dataWithContentsOfURL:[NSURL URLWithString:passURLString]];

        NSError *error;
        PKPass *pass = [[PKPass alloc] initWithData:data error:&error];
        [[UIApplication sharedApplication] openURL:[pass passURL]];

        PKAddPassesViewController *passVC = [[PKAddPassesViewController alloc] initWithPass:pass];
        passVC.delegate = self;
        [passVC setDelegate:(id)self];
        [self presentViewController:passVC animated:YES completion:nil];
    }

次のエラー メッセージが表示されます。

PKAddPassesViewController: 0xca5f7d0 を PaymentViewController: 0x14882290 に提示しようとします。これは、PKAddPassesViewController: 0xb169470 の遅延提示が完了するのを待っています。

前もって感謝します。

4

1 に答える 1

0

ループの最後の反復にいるかどうかを確認してください。そうである場合は、ディスプレイをアニメーション化します。そうでない場合は、アニメーション化しないでください。

とは言っても、ユーザーの観点からは厄介です。addPassesViewControllerDidFinish:が呼び出されたときにリストを表示したり、各ディスプレイ間でアニメーションを表示したりするなど、より適切な表示方法を検討する必要があります。

于 2013-06-10T14:45:49.963 に答える