Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/101.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/5/objective-c/22.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_Objective C_Uistoryboardsegue_Xcode10 - Fatal编程技术网

Ios 轻敲屏幕使当前控制器返回到上一个控制器

Ios 轻敲屏幕使当前控制器返回到上一个控制器,ios,objective-c,uistoryboardsegue,xcode10,Ios,Objective C,Uistoryboardsegue,Xcode10,每次单击视图控制器顶部的某个位置时,它都会返回到上一个视图。根控制器不受影响,因为它也没有任何要返回的内容。但我的所有视图控制器都会受到影响。(请阅读更新3) 我尝试过的事情: 寻找不必要的手势识别器。(结果:我检查列表时收到零。) 我想我可能是不小心在视图中添加或留下了一个IBOutlet之类的东西。(结果:没有不必要的IB出口。) 我从一个视图中禁用了用户交互,以查看它是否会受到影响。(结果:在我再次启用用户交互之前,错误似乎消失了。) 我试着做了一些研究,但没有得到我想要的结果 点击绿线上

每次单击视图控制器顶部的某个位置时,它都会返回到上一个视图。根控制器不受影响,因为它也没有任何要返回的内容。但我的所有视图控制器都会受到影响。(请阅读更新3)

我尝试过的事情:

  • 寻找不必要的手势识别器。(结果:我检查列表时收到零。)
  • 我想我可能是不小心在视图中添加或留下了一个IBOutlet之类的东西。(结果:没有不必要的IB出口。)
  • 我从一个视图中禁用了用户交互,以查看它是否会受到影响。(结果:在我再次启用用户交互之前,错误似乎消失了。)
  • 我试着做了一些研究,但没有得到我想要的结果
  • 点击绿线上方将使视图控制器返回到上一个控制器。

    我对Objective-C和Xcode还比较陌生,所以我不知道自己是否犯了新手错误

    更新(请阅读更新3)

    还是没什么,但我还尝试了一些东西:

  • 记录每个用户操作
  • 使用新的视图控制器创建了一个新项目
  • 打开上一个项目以测试其视图控制器
  • 已卸载并重新安装Xcode
  • 所有的尝试都伴随着那个奇怪的错误

    更新2(请阅读更新3)

    我决定在这个问题上插上创可贴。因为当点击一个按钮时,这个bug不起作用,所以我在一个空按钮上设置了约束条件,将它放在背景图像的顶部,并在点击按钮时消除了这个效果

    我原以为这会奏效,但屏幕上有几个点激活了这个bug。我进行了实验,发现ui元素的某些部分激活了这个bug。(例如:Stackview中的一些标签、文本字段的顶部、开关、UICollectionView的顶部等)

    我已禁用某些ui元素的用户交互。不幸的是,并非所有ui元素都可以禁用,因为有些元素需要用户交互

    我还发现用三个手指在屏幕上敲击会激活bug

    以下是我尝试在屏幕上多次点击时在控制台中收到的错误代码:

    :手势:在下次触摸前接收系统手势状态通知失败

    更新3

    在再次使用代码之后。我相信我已经找出了问题的原因,但没有找到解决方法

    我相信这与故事板的顺序有关,或者至少与所使用的过渡有关。如果我将kind设置为“Show(例如Push)”,那么它就可以正常工作,但是如果我将kind设置为“Present Modally”,并将转换设置为“Partial Curl”,那么bug就会完成它的工作


    旁注:这就是我测试它的方式。我创建了一个新项目(我认为语言不重要)。该项目有两个视图控制器;一个按钮,每个按钮的segue指向每个视图控制器。Segue 1的类型为“当前模态”,过渡为“部分旋度”。Segue 2位于第二视图控制器上,其类型为“显示(如推送)”。要测试错误,请沿屏幕顶部轻按。如果该错误起作用,则应显示部分卷曲过渡,但方向相反,并将用户发送回第一视图控制器。

    可能您正在体验来自导航控制器的标准回扫手势。就是这样,请尝试以下代码:

    目标C:

    if ([self.navigationController respondsToSelector:@selector(interactivePopGestureRecognizer)]) {
        self.navigationController.interactivePopGestureRecognizer.enabled = NO;
    }
    
    斯威夫特:

    navigationController?.interactivePopGestureRecognizer?.isEnabled = false
    

    我在我的两个控制器上的viewDidLoad方法中键入了代码。它似乎不起作用。这可能是一个长期的尝试,但有可能在任何类型的用户交互上有一个通用断点吗?例如:当用户点击一个UI元素或类似的东西时中断。这是一个众所周知的带有部分卷曲的bug。有关更多信息和解决方案,请参见复制。