0

とにかくUIAlertViewが表示されているかどうかを観察し、表示されているときに関数を呼び出すことは可能ですか?

UIAlertView が作成されておらず、関数を呼び出したいのと同じクラスに表示されていません。

説明するのは難しいですが、簡単に言えば、UIAlertView が表示されているかどうかを監視することが可能だとは思わないため、ビューがファーストレスポンダーまたは何かのようになるかどうかを何らかの方法で監視または観察する必要があります:/

4

2 に答える 2

3

通知の仕事のように聞こえます。

クラス A が UIAlert を作成し、クラス B がそれを監視する必要があるとします。クラス A は通知を定義します。クラス B はその通知に登録します。クラス A がアラートを開くと、通知が投稿され、クラス B はそれを自動的に確認します。

詳細については、NSNotification を参照してください。

于 2010-04-08T13:09:07.173 に答える
0

(イベントを実行したり通知を生成したりせず、アラートが表示されているかどうかを確認したい場合)、アラートビューをクラスレベル変数として宣言し、アラートビューが閉じられたときに解放するように行うことができます。 。

@interface ViewControllerA:UIViewController{
UIAlertView *theAlertView;

}

@property (nonatomic, retain) UIAlertView *theAlertView;
@end

@implementation ViewControllerA

@synthesize theAlertView;

- (void)showAlertView{
    // theAlertView = [[UIAlertView alloc] initWithTitle:@"Title" message:@"message" delegate:self cancelButtonTitle:@"Cancel" otherButtonTitles:nil];
    // [theAlertview show];
    self.theAlertView = [[UIAlertView alloc] initWithTitle:@"Title" message:@"message" delegate:self cancelButtonTitle:@"Cancel" otherButtonTitles:nil];
    [self.theAlertview show];
}

- (void)alertView:(UIAlertView *)alertView didDismissWithButtonIndex:(NSInteger)buttonIndex{
    // [theAlerView release];
    self.theAlertView=nil; // The synthesized accessor will handle releasing. 
}

今、あなたはそれをチェックすることができます:

if(viewControllerAClassObj.theAlertView){

}  

お役に立てれば、

ありがとう、

マッドハップ

于 2010-04-08T13:30:28.240 に答える