已将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;