0

didConnectbluetoothのメソッドにアラートビューを表示します。なぜか4発発射。私はそれをバンドエイドしようとしていますが、うまく機能していません。基本的に、アラート ビューを独自のメソッドに配置し、そのメソッドを で呼び出しますdidConnect。それはそれが4回発火するときです。一度だけ発射するように設定しようとしています。私がやろうとしたことは、TRUE値を返すようにアラート ビュー メソッドを設定することでした。次に、これを行います:

if ([successfulConnection self] == FALSE) {
        [self successfullConnection];

    }

TRUEこれは最初はうまく機能しますが、残りの時間はメソッドが に設定されます。if ステートメントの最後でequal に戻すとFALSE、4 回起動し、開始した場所にすぐに戻るような気がします。上記のコードを変更して、4回起動しようとしたときに1回だけ起動するようにする方法を知っている人はいますか?

また、上記のコードを my でこれに置き換えようとしましたdidConnectが、まったく起動しませんでした:

[successfulConnection self];

if (successfulConnection.visible == YES) {
[successfulConnection dismissWithClickedButtonIndex:0 animated:YES];
}
4

3 に答える 3

0

これらは、要件に応じて使用できる方法です。

編集:完璧な方法... App Storeにアプリをアップロードしたくない場合

それを知ることalertViewですcurrently visible or not

Usage: 他に必要な場合にのみ、alertView を表示します。

-(UIAlertView *)getLastAlertView
{
  Class UIAlertManager = objc_getClass("_UIAlertManager");
  UIAlertView *topMostAlert = [UIAlertManager performSelector:@selector(topMostAlert)];
  return topMostAlert;
}

Dissmiss any alertView presentあなたが知らないこと。

Usage: すべての alertView を閉じてから、新しいものを表示します

-(void)dissmissLastAlert
{
  Class UIAlertManager = objc_getClass("_UIAlertManager");
  UIAlertView *topMostAlert = [UIAlertManager performSelector:@selector(topMostAlert)];
  if (topMostAlert) {
    [topMostAlert dismissWithClickedButtonIndex:0 animated:YES];
  }
}
于 2014-09-10T11:19:54.370 に答える