对于带有操作的AlertViews来说是新手。像我在这里找到的例子一样设置了我的。我在.h中设置委托方法,但是当我调试时发现它没有达到我的clickedButtonAtIndex方法。可能遗漏了一些简单的事情: - /任何帮助解决这个问题都将受到赞赏,谢谢。 这是我的代码:
.h文件
@interface LineDetailViewController : UIViewController <UIAlertViewDelegate>
。 m file:
- (IBAction)removeLineButton:(UIButton *)sender {
NSString * requestSubmitText = [NSString stringWithFormat:@"Hey Bro are you sure you want to remove this line you created, it will also remove all the reviews attached and can not be undone?"];
UIAlertView *removeLineRequest = [[UIAlertView alloc] initWithTitle:@"WARNING!!"
message:requestSubmitText
delegate:nil
cancelButtonTitle:@"Remove It"
otherButtonTitles:@"Cancel",nil];
[removeLineRequest show];
- (void)alertView:(UIAlertView *)alertView
clickedButtonAtIndex:(NSInteger)buttonIndex{
//if (buttonIndex == [alertView cancelButtonIndex]){
if (buttonIndex == 0){
NSLog(@"Cancel button pressed");
}else{
NSLog(@"other button pressed");
}
}
答案 0 :(得分:2)
您必须将委托设置为self
UIAlertView *removeLineRequest = [[UIAlertView alloc] initWithTitle:@"WARNING!!"
message:requestSubmitText
delegate:self // <- here
cancelButtonTitle:@"Remove It"
otherButtonTitles:@"Cancel",nil];
答案 1 :(得分:1)
致电path
。
答案 2 :(得分:1)
创建警报视图时,将您的代理设置为自己。而且你已经实现了UIAlertViewDelegate。
答案 3 :(得分:0)
要解决您的问题,只需将delegate
设置为self
而不是nil
。
一些额外的信息,
UIAlertView
和UIAlertViewDelegate
已被弃用。根据文档,
UIAlertView
已弃用。请使用UIAlertController
代替preferredStyle
UIAlertControllerStyleAlert
。
相关教程here