我正在为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

最佳答案

您很可能需要在某些时候使用类似于以下内容的方法将类注册为委托:

 [yourAlertViewObject setDelegate:self];


正如UIAlertViewDelegate Protocol Reference文档所说(强调我的):


  如果您添加自己的按钮或
  自定义警报的行为
  查看,实现一个符合的委托
  该协议来处理
  相应的委托消息。采用
  警报视图的委托属性
  指定您的应用程序之一
  对象作为委托。

关于iphone - UIAlertView不响应UIAlertViewDelegate,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4907522/

10-12 05:50