Iphone UIActionSheet,如何通过一次单击来消除它?
UIActionSheet,如何通过一次单击来消除它? 我必须点击一个按钮两次,这样它就会被解除,我该怎么做才能在第一次点击后解除它?!这是我的密码:Iphone UIActionSheet,如何通过一次单击来消除它?,iphone,objective-c,uiactionsheet,Iphone,Objective C,Uiactionsheet,UIActionSheet,如何通过一次单击来消除它? 我必须点击一个按钮两次,这样它就会被解除,我该怎么做才能在第一次点击后解除它?!这是我的密码: -(void)buttonHeld:(id)sender { UIActionSheet *popupQuery = [[UIActionSheet alloc] initWithTitle:@"Delete Contact?!" delegate:self cancelButtonTitle:@"Cancel" destructi
-(void)buttonHeld:(id)sender
{
UIActionSheet *popupQuery = [[UIActionSheet alloc] initWithTitle:@"Delete Contact?!" delegate:self cancelButtonTitle:@"Cancel" destructiveButtonTitle:@"Delete" otherButtonTitles: nil];
popupQuery.actionSheetStyle = UIActionSheetStyleBlackOpaque;
[popupQuery showInView:self.view];
[popupQuery release];
}
-(void)actionSheet:(UIActionSheet *)actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex {
if (buttonIndex == 0) {
NSLog(@"Delete button clicked Button Clicked");
else if (buttonIndex == 1) {
NSLog(@"Cancel Button Clicked");
}
}
当您分配操作表时,无需在此委托中声明,您有一个“取消”按钮,默认情况下,该按钮会关闭操作表,如下所示
[[UIActionSheet alloc] initWithTitle:@"" delegate:self cancelButtonTitle:@"Cancel" destructiveButtonTitle:nil otherButtonTitles:btnTitle,@"Send for a date range",nil];
从任何其他事件中,您都可以使用此方法
- (void)dismissWithClickedButtonIndex:(NSInteger)buttonIndex animated:(BOOL)animated
代码中有一个语法错误,您将else块放入if块中。当您分配操作表时,无需在此委托中声明您有一个“取消”按钮,默认情况下,该按钮会关闭操作表,类似于
[[UIActionSheet alloc] initWithTitle:@"" delegate:self cancelButtonTitle:@"Cancel" destructiveButtonTitle:nil otherButtonTitles:btnTitle,@"Send for a date range",nil];
从任何其他事件中,您都可以使用此方法
- (void)dismissWithClickedButtonIndex:(NSInteger)buttonIndex animated:(BOOL)animated
在您的代码中,有一个语法错误,您将else块放入if块。这就是我如何取消操作表的原因
[actionSheet dismissWithClickedButtonIndex:0 animated:YES];
希望这能有所帮助这就是我如何驳回行动单
[actionSheet dismissWithClickedButtonIndex:0 animated:YES];
希望这对您有所帮助基于您的方法“buttonHeld”的名称,我假设您正在尝试从UILongPressGestureRecognitor启动UIActionSheet。如果希望它按预期工作,则需要使用下面列出的代码。问题源于UILongPressGestureRecognitor是一种“连续手势”,它会多次触发并在几个不同的状态下进行。您需要监视正确的状态,然后加载UIActionSheet。我有完全相同的问题,这就是我解决它的原因
- (IBAction) buttonHeld:(UILongPressGestureRecognizer *)sender {
if (sender.state == UIGestureRecognizerStateBegan) {
UIActionSheet *popupQuery = [[UIActionSheet alloc]
initWithTitle:@"Delete Contact?!"
delegate:self
cancelButtonTitle:@"Cancel"
destructiveButtonTitle:@"Delete"
otherButtonTitles:nil];
popupQuery.actionSheetStyle = UIActionSheetStyleBlackOpaque;
[popupQuery showInView:self.view];
}
}
基于方法“buttonHeld”的名称,我假设您正在尝试从UILongPressGestureRecognitor启动UIActionSheet。如果希望它按预期工作,则需要使用下面列出的代码。问题源于UILongPressGestureRecognitor是一种“连续手势”,它会多次触发并在几个不同的状态下进行。您需要监视正确的状态,然后加载UIActionSheet。我有完全相同的问题,这就是我解决它的原因
- (IBAction) buttonHeld:(UILongPressGestureRecognizer *)sender {
if (sender.state == UIGestureRecognizerStateBegan) {
UIActionSheet *popupQuery = [[UIActionSheet alloc]
initWithTitle:@"Delete Contact?!"
delegate:self
cancelButtonTitle:@"Cancel"
destructiveButtonTitle:@"Delete"
otherButtonTitles:nil];
popupQuery.actionSheetStyle = UIActionSheetStyleBlackOpaque;
[popupQuery showInView:self.view];
}
}
我敲了几下才把它取消。问题在于我将它附加到了哪个视图
[action showInView:self.view];
self.view仅在IB中被引用。我将其更改为另一个视图,它工作了。我点击了几下才将其取消。问题在于我将它附加到了哪个视图
[action showInView:self.view];
self.view仅在IB中被引用。我将其更改为另一个视图,它起到了作用。如果您正在为iphone开发,则始终可以安全使用: [popupQuery showFromBarButtonItem:发件人动画:是]
或showFromTabBar:或showFromToolBar等,而不是showinView。如果您是为iphone开发的,则始终可以安全使用: [popupQuery showFromBarButtonItem:发件人动画:是]
或showFromTabBar:或showFromToolBar等,而不是showinView。你有没有想过这个问题?我也有同样的问题。当我第一次单击ActionSheet上的按钮时,它正在调用ActionSheet中的正确方法:ClickedButtonIndex:但是按钮不会高亮显示为蓝色,并且工作表也不会关闭。直到我第二次再次点击按钮,它才会突出显示然后消失。你有没有想过?我也有同样的问题。当我第一次单击ActionSheet上的按钮时,它正在调用ActionSheet中的正确方法:ClickedButtonIndex:但是按钮不会高亮显示为蓝色,并且工作表也不会关闭。直到我第二次点击按钮,它才会突出显示然后消失。我认为这也是正确的答案。我可以确认这为我解决了问题。我认为这也是正确的答案。我可以确认这为我解决了问题。