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

ghi*_*boz 13 iphone objective-c cancel-button uiactionsheet ios

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

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];
Run Code Online (Sandbox Code Playgroud)

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

错误点击!

我该怎么解决这个问题?

谢谢:)

Pen*_*One 37

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

要测试这个理论,添加另一个按钮,看看所有上部按钮是否正常工作,但是底部按钮仍然表现出这种行为.

要解决此问题,请确保视图延伸到屏幕底部.如果你的应用程序中有一个tabBar,那将是我怀疑的问题.你可以使用showFromTabBar:,如果你想使用TabBar上面的表,或showFromToolbar:从工具栏显示它.

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

  • 谢谢!它确切地说!我使用showFromTabBar而不是showInView,现在没问题! (2认同)

Aja*_*ary 7

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

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

// ...

[actionSheet showInView:[UIApplication sharedApplication].keyWindow];
Run Code Online (Sandbox Code Playgroud)

可能会帮助别人.

快乐编码:)