UIAlertView委托方法在iOS 5.1上没有响应

时间:2012-03-26 13:58:17

标签: objective-c ipad uialertview ios5.1

我创建了一个带有两个按钮的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,现在可以正常使用。

2 个答案:

答案 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];
}