Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/94.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/6/jenkins/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_Swift_Xcode_Ios Simulator - Fatal编程技术网

Ios 如何防止轻敲屏幕时出现回跳

Ios 如何防止轻敲屏幕时出现回跳,ios,swift,xcode,ios-simulator,Ios,Swift,Xcode,Ios Simulator,当我点击屏幕时,如何防止Xcode执行返回上一个视图控制器/屏幕的顺序 当我单击视图控制器/屏幕上的任意位置时,它会将我发送回以前查看的视图控制器/屏幕 我用模拟器和真实的iPhone进行了测试,它也做了同样的事情。此外,我已经通过删除Xcode中的所有序列来测试了这一点,如果我点击任何地方,它仍然会将我发送回上一个屏幕 [用代码更新] 视图控制器#1: 然后,从视图控制器#1到视图控制器#2添加了一个序列-一个标识符为“SecondView”的模态呈现 视图控制器#2: 您似乎有一个全屏ui按

当我点击屏幕时,如何防止Xcode执行返回上一个视图控制器/屏幕的顺序

当我单击视图控制器/屏幕上的任意位置时,它会将我发送回以前查看的视图控制器/屏幕

我用模拟器和真实的iPhone进行了测试,它也做了同样的事情。此外,我已经通过删除Xcode中的所有序列来测试了这一点,如果我点击任何地方,它仍然会将我发送回上一个屏幕

[用代码更新]

视图控制器#1:

然后,从视图控制器#1到视图控制器#2添加了一个序列-一个标识符为“SecondView”的模态呈现

视图控制器#2:


您似乎有一个全屏
ui按钮
ui手势识别器
触发
解除(动画:Bool)
或解除序列


请分享您的代码。

我不知道您的详细代码,只需提供一种方法即可,使用EventTouch或UITapgestureRecognitizer即可,在查看控制器2中: EventTouch


希望能帮助你。

首先,动画是如何发生的,我指的是过渡效果,如果是从上到下的,然后是发射,
try view interaction enable出于调试目的为false,并将结果发布为reply

我找到了问题的答案

答案如下:

 private func removePartialCurlTap() {
  if let gestures = self.view.gestureRecognizers as? [UIGestureRecognizer] {
    for gesture in gestures {
      self.view.removeGestureRecognizer(gesture)
    }
  }
}

override func viewDidAppear(_ animated: Bool) {
  super.viewDidAppear(animated)
  removePartialCurlTap()
}
问题似乎是用于Seque的转换,特别是当使用“Partial Curl”时,您会遇到这个问题。我猜这是Xcode/iOS中的一个bug,或者没有很好的文档记录,如果你使用特定的转换,你需要基本上删除手势识别器,这样当用户简单地单击屏幕上的某个人时,就不会返回到上一个屏幕


在此处发布此问题的答案应归功于:

您没有提供足够的信息。您如何介绍第二视图控制器?以模式呈现它?你用的是爆米花吗?您所描述的不是正常行为,因此如果希望我们帮助您,您需要提供更多信息。是的,以模态方式呈现第二视图控制器。不是爆米花。我只是在创建一个视图控制器。然后在第一视图控制器中添加一个按钮,并为按钮添加一个动作触发器,以显示第二视图控制器。然后,第二视图控制器为空。上面没什么。。。如果我单击该视图/屏幕上的任何位置,它会将我发送回第一视图控制器。如果您发布一些打开文档大纲窗格的故事板屏幕截图,那就太好了。所以我们可以看到这些视图中的确切内容。不,没有全屏按钮。当我在序列图像板中创建一个新的ViewControl时会发生这种情况,即使屏幕是空白的。由于类ViewDogViewControllerOk的重新声明无效,您的代码可能会出错,我已经解决了这个问题,但仍然存在问题。这似乎没有帮助。。。如果我尝试这两种方法中的任何一种,我都会出错。但是谢谢你的建议。
import UIKit

class SecondViewController: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()
    }
}
override func touchesBegan(touches: Set<NSObject>, withEvent event: UIEvent) {
       dismiss(animated: Bool)
}
func handleTap(sender: UITapGestureRecognizer) {
   if sender.state == .ended {
    // handling code
    dismiss(animated: Bool)
   }
}
 private func removePartialCurlTap() {
  if let gestures = self.view.gestureRecognizers as? [UIGestureRecognizer] {
    for gesture in gestures {
      self.view.removeGestureRecognizer(gesture)
    }
  }
}

override func viewDidAppear(_ animated: Bool) {
  super.viewDidAppear(animated)
  removePartialCurlTap()
}