0

Classを呼び出しようとdidDismissWithButtonIndexしていますが、呼び出されません。また、ファイルとメソッドにUITextView実装UIAlertViewDelegateします。MyViewcontroller.h[alert setDelegate:self]

UIAlertViewクラスでデリゲートメソッドを呼び出すことは可能ですUITextViewか??

+ (void)deleteTextr:(UITapGestureRecognizer *)gestureRecognizer
{
    if (gestureRecognizer.state == UIGestureRecognizerStateBegan)
    {
        UIAlertView *alert  = [[UIAlertView alloc]initWithTitle:@"" message:@"Delete Text !!!!" delegate:self cancelButtonTitle:@"Delete" otherButtonTitles:@"No", nil];
        [alert setDelegate:self];
        [alert show];
    }
}
- (void)alertView:(UIAlertView *)alertView didDismissWithButtonIndex:(NSInteger)buttonIndex
{
    if(buttonIndex == 1)
    {
        [self removeFromSuperview];
    }
}
4

2 に答える 2

3

デリゲート メソッドをクラス メソッドに変更するだけです。このような:

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

// - + に変更

+ (void)alertView:(UIAlertView *)alertView didDismissWithButtonIndex:(NSInteger)buttonIndex;
于 2014-07-10T05:48:41.097 に答える
2

deleteTextr:クラスメソッドです。クラス メソッドのコンテキストでは、クラスselfへの単なる参照です。UIAlertViewDelegate プロトコルを使用するには、クラスのインスタンスを UIAlertView インスタンスのデリゲート プロパティに割り当てる必要があります。これは、インスタンス メソッド内でのみ実行できます。

これを読んで、前述の概念をよりよく理解してください。

于 2014-07-10T05:44:17.217 に答える