1

iPhone アプリで MBProgressHUD を使用しています。すべて正常に動作し、必要に応じてアラートを表示します。しかし、問題がありますhudWasHidden。アラートの 1 つにデリゲートを使用できません。カスタムセグエを使用して別のビューをロードするため、これを行いたいのですが、アラートが非表示になった後にのみビューをロードしたいのです。私はそのようにアラートを呼び出します:[alertSentHUD hide:YES afterDelay:2.0];そして、クラスをMBProgressHUDDelegate(ヘッダーファイルで)に設定しました。[alertSentHUD setDelegate:self];また、問題をキャッチするために、viewDidLoad を入れて、hudWasHidden通常どおりセグエを起動します[self performSegueWithIdentifier:@"NewAlertToAllThreads" sender:self];

しかし、これは決して呼び出されないようです (必要なビューに到達しません)。

何か案は ?ありがとう。

4

2 に答える 2

2

期待どおりのメッセージ/アクションがない場合はいつでも。それは何かがゼロであることを意味します。[alertSentHUD setDelegate:self] を呼び出す前に、alertSentHud に nil が含まれているかどうかを確認します。

Aso メッセージ hide を MBProgressHUD に渡す前に、必ずデリゲートを設定してください。つまり、デリゲートを設定した後に [alertSentHUD hide:YES afterDelay:2.0] が呼び出されることを確認してください。

于 2012-07-24T21:28:44.247 に答える
1

を入れても表示NSLog()hudWasHidden:れませんか?それにもかかわらず、より多くのソース コードは、問題を理解するのに最適です。ブロック メソッドを使用することもできます。

[self doSomethingInBackgroundWithProgressCallback:^(float progress) {
    hud.progress = progress;
} completionCallback:^{
    [MBProgressHUD hideHUDForView:self.view animated:YES];
    [self performSegueWithIdentifier:@"NewAlertToAllThreads" sender:self];
}];
于 2012-07-24T21:08:38.433 に答える