我创建了一个带有两个按钮的UIAlertView实例,并且在我的类的接口文件中(.h)我也设置了委托,但是当单击按钮时仍然无法获得任何响应。这是我的代码:
//myClass.h
@interface MainMenu : UIViewController<UIAlertViewDelegate>
-(IBAction)secondAct:(id)sender;
实施
-(IBAction)secondAct:(id)sender
alert = [[UIAlertView alloc] initWithTitle:@"Dear User"
message:@"Your Request Will be Sent To Security"
delegate:nil
cancelButtonTitle:@"Cancel"
otherButtonTitles:@"OK", nil];
[alert show];
[alert autorelease];
}
和委托方法:
-(void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex{
NSLog(@"UIAlertView delegate works");//this line too isnt displayed
NSString *title=[ alertView buttonTitleAtIndex:buttonIndex ];
if ([title isEqualToString:@"OK"]) {
NSLog(@"OK Pressed");
}//i want to create something like this
} 我做了上面的所有代码,但仍然无法采取任何行动。无论我点击哪个按钮,它都会消除警报。这个代码有什么问题可以帮助吗? 的 ANSWER
亲爱的PeterG.发表评论,将delegete:nil
更改为delegate:self
,现在可以正常使用。
答案 0 :(得分:2)
代表应该设置为self。如果它产生错误,请在此处发布。
此外,我认为你不应该自动发布警报ivar。试着跳过那一行,看看会发生什么?
答案 1 :(得分:0)
请给代表“自我”。
-(IBAction)secondAct:(id)sender
alert = [[UIAlertView alloc] initWithTitle:@"Dear User"
message:@"Your Request Will be Sent To Security"
delegate:self
cancelButtonTitle:@"Cancel"
otherButtonTitles:@"OK", nil];
[alert show];
}