1

呼び出し順のコードは次のとおりです。このコードのチャンクが呼び出されると、 AUIAlertViewが画面に表示されます。

[upcAlertView dismissWithClickedButtonIndex:0 animated:YES];

[self.navigationController pushViewController:editController animated:YES];

問題は、UIAlertViewが表示されるまでに画面から削除されないことeditControllerです。の中でいくつかの読み込みが行われているので、これらのことが起こる必要がviewWillAppearあるeditControllerので、クイックプログレスホイールを追加したいです (ただし、ダイアログを削除する必要があります)。このコードは、メイン スレッドから呼び出されます。

誰にも洞察がありますか?

4

3 に答える 3

3

UIAlertViewDelegateのドキュメント、さらに重要なメソッドを確認してください

- (void)alertView:(UIAlertView *)alertView didDismissWithButtonIndex:(NSInteger)buttonIndex;

このメソッドが呼び出されると、viewcontroller をプッシュできるので、プッシュする前にビュー コントローラーが閉じられていることがわかります。

そのようです:

- (void)alertView:(UIAlertView *)alertView didDismissWithButtonIndex:(NSInteger)buttonIndex
{
    [self.navigationController pushViewController:editController animated:YES];
}
于 2013-06-05T18:35:43.147 に答える
0

UIAlertView はUIAlertViewDelegateプロトコルに準拠していますか?

以下を更新する必要があります。

.h ファイル

@interface YourClass : YourClassSuperClass <UIAlertViewDelegate>

.m ファイル

UIAlertView *alert = //alloc init
[alert setDelegate: self];

このメソッドを追加します。

- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex
{
   switch (buttonIndex)

    case(0):
    {
      //Cancel button
    }
      break;

    case(..n):
    {
      //All other buttons
    }
      break;

    default:
    {
      //should never be thrown
    } 
     break;
}
于 2013-06-05T18:40:41.640 に答える