我正在使用iPhone的徽标(MobileSubstrate插件),我的<。p> .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
答案 0 :(得分:4)
你很可能需要在某些时候使用以下内容注册你的班级作为代表:
[yourAlertViewObject setDelegate:self];
正如UIAlertViewDelegate Protocol Reference文档所说(强调我的):
如果您添加自己的按钮或 自定义警报的行为 查看,实现符合的委托 到这个协议来处理 相应的委托消息。 使用 警报视图的委托属性 指定您的一个应用程序 对象作为代表。
答案 1 :(得分: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];
答案 2 :(得分:1)
您只需将%new
放在alertView
代表前面:
%new
-(void) alertView:...