ios UIActionSheet取消按钮无法正常工作

时间:2011-07-14 21:05:02

标签: iphone ios objective-c uiactionsheet cancel-button

我有这个问题: 这是我的代码:

UIActionSheet *popupQuery = [[UIActionSheet alloc] initWithTitle:@"Share the race" delegate:self cancelButtonTitle:@"Cancel" destructiveButtonTitle:@"Send with mail" otherButtonTitles:nil];
    popupQuery.actionSheetStyle = UIActionSheetStyleBlackTranslucent;
    [popupQuery showInView:self.view];
    [popupQuery release];

一切似乎都没问题,2个按钮显示正确,“发送邮件”按钮没问题,但取消仅在上方抓住点击... 这里有一个说明情况的镜头:

error click!

我该如何解决这个问题?

感谢:)

3 个答案:

答案 0 :(得分:37)

我的猜测是UIActionSheet的底部超出了视图的范围,因此不会对触摸做出响应。

要测试此理论,请添加另一个按钮,看看所有上部按钮是否正常工作,但底部按钮仍然显示此行为。

要解决此问题,请确保视图延伸到屏幕底部。如果你的应用程序中有一个tabBar,那将是我怀疑的问题。如果您希望工作栏位于tabBar上方,或showFromTabBar:可以使用工具栏显示该工作表,则可以使用showFromToolbar:

如果你没有底栏,那我就错了,不知道。

答案 1 :(得分:7)

您应该将操作表显示为应用程序窗口的子视图,而不是当前视图。

UIActionSheet *actionSheet = [[UIActionSheet alloc] init...];

// ...

[actionSheet showInView:[UIApplication sharedApplication].keyWindow];

可能会帮助他人。

快乐编码:)

答案 2 :(得分:2)

使用

[actionSheet showFromTabBar:[[self tabBarController] tabBar]];

而不是

[actionSheet showInView:self.view];