我想在didDismissWithButtonIndex
课程上打电话给UITextView
但是没有打电话。
我还在UIAlertViewDelegate
文件和MyViewcontroller.h
方法上实施[alert setDelegate:self]
。
那么可以在UIAlertView
Class中调用UITextView
委托方法吗?
+ (void)deleteTextr:(UITapGestureRecognizer *)gestureRecognizer
{
if (gestureRecognizer.state == UIGestureRecognizerStateBegan)
{
UIAlertView *alert = [[UIAlertView alloc]initWithTitle:@"" message:@"Delete Text !!!!" delegate:self cancelButtonTitle:@"Delete" otherButtonTitles:@"No", nil];
[alert setDelegate:self];
[alert show];
}
}
- (void)alertView:(UIAlertView *)alertView didDismissWithButtonIndex:(NSInteger)buttonIndex
{
if(buttonIndex == 1)
{
[self removeFromSuperview];
}
}
答案 0 :(得分:3)
只需将委托方法更改为类方法。像这样:
- (void)alertView:(UIAlertView *)alertView didDismissWithButtonIndex:(NSInteger)buttonIndex;
// - 更改为+
+ (void)alertView:(UIAlertView *)alertView didDismissWithButtonIndex:(NSInteger)buttonIndex;
答案 1 :(得分:2)
deleteTextr:
是一种类方法。在类方法的上下文中,self
只是对类的引用。要使用UIAlertViewDelegate协议,您需要将类的实例分配给UIAlertView实例的委托属性,该属性只能在实例方法中完成。
阅读this以更好地掌握上述概念。