1

ボタンを押すと、私のコードでビューが呼び出されます。

buttonlabel.text = @"Wait";
[self presentModalViewController:controller animated:YES];
buttonlabel.text = @"Done";

ボタンがクリックされた後、すぐにラベルを「待機」に変更したい。現在起こっていることは、ビューの表示に 1 ~ 2 秒かかり、その 1 ~ 2 秒が経過した後、ビューが変更される直前にのみ、ラベルが「待機」に変わることです。

アニメーションを YES から NO に変更しても役に立ちません。

4

2 に答える 2

2

システムが実際にボタンのテキストを「待機」に変更できるように、View Controller の表示をキューに入れる必要があります。さらに詳しい情報が必要な場合は、Google runloop iOS.

buttonlabel.text = @"Wait";
dispatch_async(dispatch_get_main_queue(), ^{
    [self presentModalViewController: controller animated: YES];
});

しかし、VC の提示に時間がかかる理由を調査し、代わりにコードを最適化する方法を見つける必要があります。並行性を組み込み、メイン スレッドをブロックしない方法を検索します。

于 2012-08-06T17:56:43.027 に答える
2
buttonlabel.text = @"Wait";

dispatch_time_t popTime = dispatch_time(DISPATCH_TIME_NOW, 0.5 * NSEC_PER_SEC);
dispatch_after(popTime, dispatch_get_main_queue(), ^(void){
     [self presentModalViewController:controller animated:YES];
     buttonlabel.text = @"Done";

});
于 2012-08-06T17:57:04.120 に答える