0

完了ブロック内からディスプレイをポップしたいのですが、同じブロック内からModalViewControllerAnimatedを閉じたいです(ただし、ポップアップが完了した後)。ポップアップは、完了ブロックの実行が終了した後にスケジュールおよび実行されることに注意してください。これは、却下が同期的であるため、ポップアップが発生しないことを意味します...

したがって、簡単な解決策は、ポップアップ後に非同期で却下をスケジュールする方法を見つけることです。連鎖する方法はありますか?保持している非同期タスクを強制的に実行して待機させる方法はありますか?

4

2 に答える 2

1

Use -performSelector:withObject:afterDelay:. You'll need to wrap the dismissal in a selector matching the signature required by -performSelector:..., since dismissModalViewControllerAnimated: takes a BOOL.

于 2012-10-03T19:15:03.690 に答える
1

代わりにdispatch_afterを使用でき、アニメーションで閉じられます。この簡単なサンプルコードを確認してください。

int64_t delayInSeconds = 2.0;
dispatch_time_t popTime = dispatch_time(DISPATCH_TIME_NOW, delayInSeconds * NSEC_PER_SEC);
dispatch_after(popTime, dispatch_get_main_queue(), ^(void){
    [self dismissModalViewControllerAnimated:YES];
});
于 2012-10-03T19:33:23.633 に答える