2

iPhone用のロゴ(MobileSubstrateアドオン)を使用しており、.hファイルを使用しています

@interface MyClass : NSObject <UIAlertViewDelegate>

そしてその

- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex { if(buttonIndex == 0) {

は.mにありますが、何も機能していません。アラートのボタンをタップしても、各buttonIndexに設定したものは呼び出されません。

ありがとう。

編集:これが私が持っているものです。

#import "Tweak.h"

%hook ASApplicationPageHeaderView

- (void)_showPurchaseConfirmation {
    UIAlertView *alert = [[UIAlertView alloc] init];
    [alert setTitle:@"title"];
    [alert setMessage:@"message"];
    [alert setDelegate:self];
    [alert addButtonWithTitle:@"button 1"];
    [alert addButtonWithTitle:@"continue"];
    [alert show];
    [alert release];
}

- (void)alertView:(UIAlertView *)alert clickedButtonAtIndex:(NSInteger)buttonIndex {    
    if (buttonIndex == 0) {  //also tried (UIAlertView *)alertView
        UIAlertView *lol = [[UIAlertView alloc] init];
        [lol setTitle:@"button 1"];
        [lol setMessage:@"button 1"];
        [lol setDelegate:self];
        [lol addButtonWithTitle:@"lol"];
        [lol show];
        [lol release];
    } else {
        %orig;
    }
}

%end
4

3 に答える 3

4

ほとんどの場合、次の行に沿って何かを使用して、ある時点でクラスをデリゲートとして登録する必要があります。

 [yourAlertViewObject setDelegate:self];

UIAlertViewDelegateプロトコルリファレンスドキュメントが言うように(私の強調):

独自のボタンを追加したり、アラートビューの動作をカスタマイズしたりする場合は、このプロトコルに準拠したデリゲートを実装して、対応するデリゲートメッセージを処理します。アラートビューのデリゲートプロパティを使用して、アプリケーションオブジェクトの1つをデリゲートとして指定します。

于 2011-02-05T15:03:35.753 に答える
1

そのクラス内でアラートを定義し、アラートデリゲートを宣言して、アラートが機能し始めることを期待します

UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Alert View "
                      " 
                                                message:@"Would you like to do something?"
                                               delegate:self 
                                      cancelButtonTitle:@"Cancel"
                                      otherButtonTitles:@"Button1", @"Button2", nil];
[alert show];
[alert release];
于 2011-02-05T16:14:23.287 に答える
1

デリゲート%newの前に置くだけです:alertView

 %new
 -(void) alertView:...
于 2013-03-31T22:12:13.307 に答える