如何在外部触摸时解除UIAlertController而不在ios中取消UIalertactionstyle取消

时间:2017-09-25 05:52:02

标签: objective-c xamarin.ios uialertview uialertcontroller

Screenshot

嗨......我正在使用UIAlerController来显示警报视图。

我成功地展示了它,但问题是我不能忽视外面触摸的观点。我必须手动创建一个视图和一个取消按钮(如屏幕截图所示)。

我知道我可以通过Uialertactionstyle取消触摸,但这会使我的UI不正确。

那么还有其他方法可以让我在外面触摸时获得触摸事件吗?

提前致谢。

1 个答案:

答案 0 :(得分:0)

我尝试使用xcode工具查看视图层次结构,如下所示:

enter image description here

我找到了添加点击手势的正确视图,因此我修改了代码并且它可以正常工作。

UIAlertController alert;
partial void UIButtonTouchUpInside(UIButton sender)
{
    alert = UIAlertController.Create("title", "msg", UIAlertControllerStyle.ActionSheet);
    this.PresentViewController(alert, true, () =>
    {
        UITapGestureRecognizer tap = new UITapGestureRecognizer(tapAction);
        alert.View.Superview.Subviews[0].AddGestureRecognizer(tap);
    });
}
void tapAction()
{
    alert.DismissViewController(true, null);
}