每次我点击视图控制器顶部的某个位置时,它将返回上一个视图。根控制器不受影响,因为它也没有要返回的任何内容。我的所有View Controller均受到影响。 (请阅读更新3)
我尝试过的事情:
在绿线上方点击将使View Controller返回到先前的Controller。
我对Objective-C和Xcode还是比较陌生,所以我不知道自己是否犯了菜鸟错误。
更新(请阅读更新3)
什么都没做,不过我尝试过以下几件事:
所有尝试仍然伴随着那个奇怪的错误。
更新2(请阅读更新3)
我已经决定对这个问题进行创可贴。由于该错误在单击按钮时不起作用,因此我将约束放在一个空按钮上,将其放在背景图片上方,并在敲击按钮时删除了效果。
我认为这可以工作,但是屏幕上有一些斑点可以激活该错误。我进行了实验,发现ui元素的某些部分激活了该错误。 (例如:Stackview中的某些标签,文本字段的顶部,开关,UICollectionView的顶部等)
我已禁止某些ui元素的用户交互。不幸的是,并不是所有的ui元素都可以被禁用,因为某些元素需要用户交互。
我还发现,用三个手指在屏幕上敲击会激活该错误。
这是我在屏幕上尝试多次轻按时在控制台中收到的错误代码:
<_ UISystemGestureGateGestureRecognizer:0x2822fc1e0>:手势:在下次触摸之前无法接收系统手势状态通知
更新3
再次使用该代码。我相信我已经找到了导致问题的原因,但没有找到解决方法。
我认为这与故事板的segue有关,或者至少与所使用的过渡有关。如果我将种类设置为“显示(例如,推送)”,则效果很好,但是如果我将种类设置为“以模态形式显示”,并且将其设置为“部分卷曲”,则该错误就可以了。
旁注:这就是我测试的方式。我创建了一个新项目(我认为语言无关紧要)。该项目有两个视图控制器。一个按钮,每个按钮都指向每个视图控制器。 Segue 1的类型为“以模态形式呈现”,过渡的类型为“局部卷曲”。 Segue 2位于第二个视图控制器上,其类型为“ Show(例如Push)”。要测试该错误,请点击屏幕顶部的。如果该错误有效,则应该显示部分卷曲过渡,但反之,然后将用户送回第一个视图控制器。
答案 0 :(得分:-1)
也许您正在经历来自导航控制器的标准向后滑动手势。多数民众赞成在这种情况下尝试此代码:
Objective-C:
if ([self.navigationController respondsToSelector:@selector(interactivePopGestureRecognizer)]) {
self.navigationController.interactivePopGestureRecognizer.enabled = NO;
}
迅速:
navigationController?.interactivePopGestureRecognizer?.isEnabled = false