Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/115.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/shell/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
已将iOS消息发送到解除分配的实例_Ios_Uigesturerecognizer_Modalviewcontroller_Viewdidappear - Fatal编程技术网

已将iOS消息发送到解除分配的实例

已将iOS消息发送到解除分配的实例,ios,uigesturerecognizer,modalviewcontroller,viewdidappear,Ios,Uigesturerecognizer,Modalviewcontroller,Viewdidappear,我有点被难住了。我有一个UIModalPresentationFormSheet,我还添加了一个手势识别器,用于在用户选择表单之外的任何位置时处理取消表单。我还在表单顶部的导航栏中有一个取消按钮。当用户选择表单之外的任何位置使用手势识别器来关闭表单时,一切正常。但是,当他们使用取消按钮时,忽略手势识别器,一旦表单关闭,我就会得到下面的错误。我相信它是从识别器发送到handleTapBehind方法。但是我不明白为什么,因为当视图被取消时,不应该调用将识别器分配给解除分配方法(handleTapB

我有点被难住了。我有一个
UIModalPresentationFormSheet
,我还添加了一个手势识别器,用于在用户选择表单之外的任何位置时处理取消表单。我还在表单顶部的导航栏中有一个取消按钮。当用户选择表单之外的任何位置使用手势识别器来关闭表单时,一切正常。但是,当他们使用取消按钮时,忽略手势识别器,一旦表单关闭,我就会得到下面的错误。我相信它是从识别器发送到handleTapBehind方法。但是我不明白为什么,因为当视图被取消时,不应该调用将识别器分配给解除分配方法(
handleTapBehind
)的
视图

错误:

[CallWebViewController handleTapBehind::]:消息发送到 解除分配的实例0x21ee5db0

代码:


将以下内容添加到viewController的ViewWillEnglish中:

recognizer.delegate=nil;
希望这有帮助

附言:我不明白你的最后一句话:

但是我不明白为什么,因为当视图被取消时,不应该调用ViewWillAppeal,这是将识别器分配给解除分配的方法(handleTapBehind)


尤其是“正在将识别器分配给解除分配的方法”

您是否检查了ViewWillEnglishe是否正在被调用?我想说的是,我不明白为什么在视图正在消失而不是出现时调用该方法。
recognizer.delegate=nil;