重複の可能性:
UITableViewCell の UILongPressGestureRecognizer - 二重呼び出し
iPhone初心者ですが、
ボタンを長押しするとアラートを表示していますが、ボタンを長押しするとアラートビューが再度呼び出されます。
これが私のコードスニペットです。
- (IBAction)longPressDetected:(UIGestureRecognizer *)gestureRecognizer {
//Gets text of Button.
UIButton *btn = (UIButton *)[gestureRecognizer view];
BtnText= [btn titleForState:UIControlStateNormal];
NSLog(@"longPressDetected");
UIAlertView* alert_view = [[UIAlertView alloc]
initWithTitle: @"Are you sure want to Delete ?" message:nil delegate: self
cancelButtonTitle: @"Yes" otherButtonTitles: @"No", nil];
[alert_view show];
[alert_view release];
}
- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex
{
if (buttonIndex==0) {
[self ReloadView];
[alertView dismissWithClickedButtonIndex:0 animated:TRUE];
}
else{
[alertView dismissWithClickedButtonIndex:1 animated:TRUE];
}
}
どんな助けでも大歓迎です。
編集:
-(void)viewWillAppear:(BOOL)animated
{
for(int i=0;i<10i++)
{
if(i!=0)
{
if (i%4==0)
{
ypos+=180;
xpos=30;
}
else
{
xpos+=200;
}
}
button = [UIButton buttonWithType:UIButtonTypeCustom];
button.frame = CGRectMake(xpos, ypos, 120,130);
[button setBackgroundImage:[UIImage imageNamed:@"ibook2.png"] forState:UIControlStateNormal];
[button setTitle:[NSString stringWithFormat:@"%@", [Downloadedepubs objectAtIndex:i]] forState:UIControlStateNormal];
[button addTarget:self action:@selector(buttonClicked:) forControlEvents:UIControlEventTouchUpInside];
LongPress = [[UILongPressGestureRecognizer alloc] init];
[LongPress addTarget:self action:@selector(longPressDetected:)];
LongPress.delegate = (id<UIGestureRecognizerDelegate>)self;
[button addGestureRecognizer:LongPress];
[self.view addSubview:button];
[LongPress release];
}
}